diff options
| -rw-r--r-- | fs/ceph/mds_client.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 8d1f11c7a5a2..f091b1351786 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c | |||
| @@ -2324,7 +2324,7 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap, | |||
| 2324 | path = ceph_mdsc_build_path(dentry, &pathlen, &pathbase, 0); | 2324 | path = ceph_mdsc_build_path(dentry, &pathlen, &pathbase, 0); |
| 2325 | if (IS_ERR(path)) { | 2325 | if (IS_ERR(path)) { |
| 2326 | err = PTR_ERR(path); | 2326 | err = PTR_ERR(path); |
| 2327 | BUG_ON(err); | 2327 | goto out_dput; |
| 2328 | } | 2328 | } |
| 2329 | } else { | 2329 | } else { |
| 2330 | path = NULL; | 2330 | path = NULL; |
| @@ -2332,7 +2332,7 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap, | |||
| 2332 | } | 2332 | } |
| 2333 | err = ceph_pagelist_encode_string(pagelist, path, pathlen); | 2333 | err = ceph_pagelist_encode_string(pagelist, path, pathlen); |
| 2334 | if (err) | 2334 | if (err) |
| 2335 | goto out; | 2335 | goto out_free; |
| 2336 | 2336 | ||
| 2337 | spin_lock(&inode->i_lock); | 2337 | spin_lock(&inode->i_lock); |
| 2338 | cap->seq = 0; /* reset cap seq */ | 2338 | cap->seq = 0; /* reset cap seq */ |
| @@ -2376,8 +2376,9 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap, | |||
| 2376 | unlock_kernel(); | 2376 | unlock_kernel(); |
| 2377 | } | 2377 | } |
| 2378 | 2378 | ||
| 2379 | out: | 2379 | out_free: |
| 2380 | kfree(path); | 2380 | kfree(path); |
| 2381 | out_dput: | ||
| 2381 | dput(dentry); | 2382 | dput(dentry); |
| 2382 | return err; | 2383 | return err; |
| 2383 | } | 2384 | } |
