[btrfs] fix check_direct_IO() for non-iovec iterators
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Oct 2016 17:39:05 +0000 (13:39 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 10 Oct 2016 17:58:16 +0000 (13:58 -0400)
commitcd27e455042da85b088bdd3a6e00da1d5b4df9f1
treed1a17b68a4098b632c79103a2d2c2184b11cee6f
parentb57332b4105abf1d518d93886e547ee2f98cd414
[btrfs] fix check_direct_IO() for non-iovec iterators

looking for duplicate ->iov_base makes sense only for
iovec-backed iterators; for kvec-backed ones it's pointless,
for bvec-backed ones it's pointless and broken on 32bit (we
walk through an array of struct bio_vec accessing them as if
they were struct iovec; works by accident on 64bit, but on
32bit it'll blow up) and for pipe-backed ones it's pointless
and ends up oopsing.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/btrfs/inode.c