aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2014-04-26 21:17:45 -0400
committerSage Weil <sage@inktank.com>2014-04-28 15:55:41 -0400
commit3bd58143bafc56dbc07f4f085e4d7e018d332674 (patch)
tree46957a1a015cd412677851bc426fbdb92e92113b
parentfd7b95cd1b58171a0b931b2063729a032bec4ac2 (diff)
ceph: reserve caps for file layout/lock MDS requests
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com> Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r--fs/ceph/ioctl.c3
-rw-r--r--fs/ceph/locks.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/ceph/ioctl.c b/fs/ceph/ioctl.c
index efbe08289292..2042fd16d1a8 100644
--- a/fs/ceph/ioctl.c
+++ b/fs/ceph/ioctl.c
@@ -110,6 +110,8 @@ static long ceph_ioctl_set_layout(struct file *file, void __user *arg)
110 return PTR_ERR(req); 110 return PTR_ERR(req);
111 req->r_inode = inode; 111 req->r_inode = inode;
112 ihold(inode); 112 ihold(inode);
113 req->r_num_caps = 1;
114
113 req->r_inode_drop = CEPH_CAP_FILE_SHARED | CEPH_CAP_FILE_EXCL; 115 req->r_inode_drop = CEPH_CAP_FILE_SHARED | CEPH_CAP_FILE_EXCL;
114 116
115 req->r_args.setlayout.layout.fl_stripe_unit = 117 req->r_args.setlayout.layout.fl_stripe_unit =
@@ -154,6 +156,7 @@ static long ceph_ioctl_set_layout_policy (struct file *file, void __user *arg)
154 return PTR_ERR(req); 156 return PTR_ERR(req);
155 req->r_inode = inode; 157 req->r_inode = inode;
156 ihold(inode); 158 ihold(inode);
159 req->r_num_caps = 1;
157 160
158 req->r_args.setlayout.layout.fl_stripe_unit = 161 req->r_args.setlayout.layout.fl_stripe_unit =
159 cpu_to_le32(l.stripe_unit); 162 cpu_to_le32(l.stripe_unit);
diff --git a/fs/ceph/locks.c b/fs/ceph/locks.c
index d94ba0df9f4d..191398852a2e 100644
--- a/fs/ceph/locks.c
+++ b/fs/ceph/locks.c
@@ -45,6 +45,7 @@ static int ceph_lock_message(u8 lock_type, u16 operation, struct file *file,
45 return PTR_ERR(req); 45 return PTR_ERR(req);
46 req->r_inode = inode; 46 req->r_inode = inode;
47 ihold(inode); 47 ihold(inode);
48 req->r_num_caps = 1;
48 49
49 /* mds requires start and length rather than start and end */ 50 /* mds requires start and length rather than start and end */
50 if (LLONG_MAX == fl->fl_end) 51 if (LLONG_MAX == fl->fl_end)