|
@@ -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,
|