[PATCH] Take i_mutex in splice_from_pipe()
authorMark Fasheh <mark.fasheh@oracle.com>
Tue, 17 Oct 2006 08:31:38 +0000 (10:31 +0200)
committerJens Axboe <axboe@nelson.home.kernel.dk>
Thu, 19 Oct 2006 18:53:08 +0000 (20:53 +0200)
commit62752ee198dca9209b7dee504763e51b11e9e0ca
tree5e340a4c690851dadc3a8aa395e4c0d14b4837eb
parentce9e3d9953c8cb67001719b5516da2928e956be4
[PATCH] Take i_mutex in splice_from_pipe()

The splice_actor may be calling ->prepare_write() and ->commit_write(). We
want i_mutex on the inode being written to before calling those so that we
don't race i_size changes.

The double locking behavior is done elsewhere in splice.c, and if we
eventually want _nolock variants of generic_file_splice_write(), fs modules
might have to replicate the nasty locking code. We introduce
inode_double_lock() and inode_double_unlock() to consolidate the locking
rules into one set of functions.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fs/inode.c
fs/splice.c
include/linux/fs.h