Ah, you're right. I *can* easily see the problem; somehow I just
didn't notice it, but when I look back at my test logs, it's
definitely there. I thought sb_start_write() took s_umount, but it
doesn't, because it was trying to solve the exact same lock ordering
problem. Drat....
Unfortunately, there doesn't seem to be a good solution here. The two
options I see is either (a) create another version of
writeback_inodes_sb() which doesn't have the WARN_ON check in
fs/fs-writeback.c (the warning is a false positive, since there are
other mechanisms which protect the superblock from being unmounted
while the write system call is in progress), or (b) call
writeback_inodes_sb() out of a workqueue.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html