Skip to content

Buffered write deadlock fix and new aops for 2.6.21-rc6-mm1

Nick Piggin linux-ext4 linux-fsdevel linux-mm 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest44 patches 16 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/44mm: revert KERNEL_DS buffered write optimisationmm/filemap.c+13 -190 replies
2/44Revert 81b0c8713385ce1b1b9058e916edcf9561ad76d6mm/filemap.c mm/filemap.h+3 -100 replies
3/44Revert 6527c2bdf1f833cc18e8f42bd97973d583e4aa83mm/filemap.c+7 -110 replies
4/44mm: clean up buffered write codemm/filemap.c+18 -170 replies
5/44mm: debug write deadlocksmm/filemap.c+2 -00 replies
6/44mm: trim more holesmm/filemap.c+40 -402 replies
7/44mm: buffered write cleanupfs/mpage.c mm/filemap.c mm/readahead.c+66 -1180 replies
8/44mm: write iovec cleanupmm/filemap.c mm/filemap.h mm/filemap_xip.c+69 -880 replies
9/44mm: fix pagecache write deadlocksinclude/linux/pagemap.h mm/filemap.c+112 -210 replies
10/44mm: buffered write iteratorinclude/linux/fs.h mm/filemap.c mm/filemap.h+150 -1300 replies
11/44fs: fix data-loss on errorfs/buffer.c+2 -00 replies
12/44fs: introduce write_begin, write_end, and perform_write aopsDocumentation/filesystems/Locking Documentation/filesystems/vfs.txt drivers/block/loop.c +8 more+561 -2104 replies
13/44mm: restore KERNEL_DS optimisationsmm/filemap.c+9 -22 replies
14/44implement simple fs aopsfs/configfs/inode.c fs/hugetlbfs/inode.c fs/ramfs/file-mmu.c +3 more+46 -210 replies
15/44block_dev convert to new aopsfs/block_dev.c+19 -70 replies
16/44rd convert to new aopsdrivers/block/rd.c+73 -527 replies
17/44ext2 convert to new aopsfs/ext2/dir.c fs/ext2/ext2.h fs/ext2/inode.c+45 -290 replies
18/44ext3 convert to new aopsfs/ext3/inode.c+88 -480 replies
19/44ext4 convert to new aopsfs/ext4/inode.c+93 -540 replies
20/44xfs convert to new aopsfs/xfs/linux-2.6/xfs_aops.c fs/xfs/linux-2.6/xfs_lrw.c+24 -300 replies
21/44fs: new cont helpersfs/buffer.c include/linux/buffer_head.h include/linux/fs.h +1 more+110 -1050 replies
22/44fat convert to new aopsfs/fat/inode.c+16 -110 replies
23/44adfs convert to new aopsfs/adfs/inode.c+9 -50 replies
24/44affs convert to new aopsfs/affs/file.c+58 -480 replies
25/44hfs convert to new aopsfs/hfs/extent.c fs/hfs/inode.c+20 -190 replies
26/44hfsplus convert to new aopsfs/hfsplus/extents.c fs/hfsplus/inode.c+21 -200 replies
27/44hpfs convert to new aopsfs/hpfs/file.c+14 -60 replies
28/44bfs convert to new aopsfs/bfs/file.c+8 -40 replies
29/44qnx4 convert to new aopsfs/qnx4/inode.c+13 -80 replies
30/44nfs convert to new aopsfs/nfs/file.c+36 -130 replies
31/44smb convert to new aopsfs/smbfs/file.c+25 -90 replies
32/44ocfs2: convert to new aopsfs/ocfs2/aops.c fs/ocfs2/aops.h fs/ocfs2/file.c+453 -6240 replies
33/44gfs2 convert to new aopsfs/gfs2/ops_address.c+125 -840 replies
34/44fs: no AOP_TRUNCATED_PAGE for writesDocumentation/filesystems/vfs.txt fs/ecryptfs/mmap.c include/linux/fs.h +1 more+20 -480 replies
35/44ecryptfs convert to new aopsfs/ecryptfs/crypto.c fs/ecryptfs/ecryptfs_kernel.h fs/ecryptfs/mmap.c+119 -1300 replies
36/44fuse convert to new aopsfs/fuse/file.c+33 -150 replies
37/44hostfs convert to new aopsfs/hostfs/hostfs_kern.c+28 -421 reply
38/44jffs2 convert to new aopsfs/jffs2/file.c+66 -390 replies
39/44cifs convert to new aopsfs/cifs/file.c+51 -380 replies
40/44ufs convert to new aopsfs/ufs/dir.c fs/ufs/inode.c+50 -230 replies
41/44udf convert to new aopsfs/udf/file.c fs/udf/inode.c+20 -230 replies
42/44sysv convert to new aopsfs/sysv/dir.c fs/sysv/itree.c+44 -240 replies
43/44minix convert to new aopsfs/minix/dir.c fs/minix/inode.c+44 -220 replies
44/44jfs convert to new aopsfs/jfs/inode.c+11 -80 replies

Reviews trailers per patch

1 of 44 patches has a Reviewed-by or Acked-by.

PatchJeff Dike
1/44
2/44
3/44
4/44
5/44
6/44
7/44
8/44
9/44
10/44
11/44
12/44
13/44
14/44
15/44
16/44
17/44
18/44
19/44
20/44
21/44
22/44
23/44
24/44
25/44
26/44
27/44
28/44
29/44
30/44
31/44
32/44
33/44
34/44
35/44
36/44
37/44A-b
38/44
39/44
40/44
41/44
42/44
43/44
44/44

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/44] Buffered write deadlock fix and new aops for 2.6.21-rc6-mm1

Hi, these patches are against 2.6.21-rc6-mm1. Aside from OCFS2, there were no major clashes between -mm and mainline diffs, which is nice.

These patches aim to solve the long standing buffered write deadlocks, and then go on to introduce a pair of new write a_op methods which allow the deadlock to be solved without taking the performance hit of the backwards compatible solutions using the old APIs.

Reiserfs (and Reiser4, in -mm) are the only filesystems left unconverted, although there are a number of less common ones still untested.

Thanks,
Nick