Commit 173e70e8 authored by Yan, Zheng's avatar Yan, Zheng Committed by Ilya Dryomov
Browse files

ceph: don't take refs to want mask unless we have all bits



If we don't have all of the cap bits for the want mask in
try_get_cap_refs, then just take refs on the need bits.

Signed-off-by: default avatar"Yan, Zheng" <ukernel@gmail.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent a25949b9
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2666,7 +2666,10 @@ again:
				}
				snap_rwsem_locked = true;
			}
			*got = need | (have & want);
			if ((have & want) == want)
				*got = need | want;
			else
				*got = need;
			if (S_ISREG(inode->i_mode) &&
			    (need & CEPH_CAP_FILE_RD) &&
			    !(*got & CEPH_CAP_FILE_CACHE))