From: Christoph Hellwig Date: Wed, 8 Feb 2017 19:43:13 +0000 (-0500) Subject: dax: assert that i_rwsem is held exclusive for writes X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=168316db3583253b9e5d46392e5b9d03d531406f;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git dax: assert that i_rwsem is held exclusive for writes Make sure all callers follow the same locking protocol, given that DAX transparantly replaced the normal buffered I/O path. Signed-off-by: Christoph Hellwig Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara --- diff --git a/fs/dax.c b/fs/dax.c index 5c74f60d0a50..04734daed1bd 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -1061,8 +1061,12 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, loff_t pos = iocb->ki_pos, ret = 0, done = 0; unsigned flags = 0; - if (iov_iter_rw(iter) == WRITE) + if (iov_iter_rw(iter) == WRITE) { + lockdep_assert_held_exclusive(&inode->i_rwsem); flags |= IOMAP_WRITE; + } else { + lockdep_assert_held(&inode->i_rwsem); + } while (iov_iter_count(iter)) { ret = iomap_apply(inode, pos, iov_iter_count(iter), flags, ops,