[rfc] changing commit_write to commit less than was prepared

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

In recently trying to solve the several (longstanding) deadlocks in
write(2), I developed what I believe to be the best solution. This
requires that ->commit_write may be called with a length less than
that which was passed to the prepare_write. If the length is different,
it may be 0, and for !uptodate pages it will only be 0. There is no
guarantee that the commit_write will ever be called later to fill the
gap.

I have gone through fs/libfs.c and fs/buffer.c, and not found any
problems (apart from pre-existing bugs). I will attempt to work my way
through other filesystems, but I could easily miss problems.

This problem is now holding up other mm/ race fixes, so it is a question
of when, not if. So filesystem maintainers, please check your code and
fix it if broken, or come up with a better solution ;)

Apologies for not cc'ing linux-fsdevel in the first place. Please join
the thread on lkml and linux-mm: "[rfc] buffered write deadlock fix"
message id 20061013143516.15438.8802.sendpatchset@xxxxxxxxxx

and please cc me.

Thanks,
Nick

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux