aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunchul Lee <[email protected]>2021-04-01 17:47:19 +0900
committerSteve French <[email protected]>2021-05-10 19:15:34 -0500
commit8044ee8e64b4fdb068e504ec3ade597d1ccad456 (patch)
tree57dec16a074fdab071ce074172815e05ab567144
parentd2f72ed8fa0c0e6c90af8ee0bbb39d41ab2d5465 (diff)
cifsd: remove useless error handling in ksmbd_vfs_read
dentry->d_inode never happen to be NULL if we hold the dentry. Signed-off-by: Hyunchul Lee <[email protected]> Signed-off-by: Namjae Jeon <[email protected]> Signed-off-by: Steve French <[email protected]>
-rw-r--r--fs/cifsd/vfs.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/cifsd/vfs.c b/fs/cifsd/vfs.c
index 6313d5ca4b46..ef823679f6be 100644
--- a/fs/cifsd/vfs.c
+++ b/fs/cifsd/vfs.c
@@ -550,7 +550,7 @@ int ksmbd_vfs_fsync(struct ksmbd_work *work, u64 fid, u64 p_id)
int ksmbd_vfs_remove_file(struct ksmbd_work *work, char *name)
{
struct path parent;
- struct dentry *dir, *dentry;
+ struct dentry *dentry;
char *last;
int err;
@@ -569,12 +569,8 @@ int ksmbd_vfs_remove_file(struct ksmbd_work *work, char *name)
return err;
}
- dir = parent.dentry;
- if (!d_inode(dir))
- goto out;
-
- inode_lock_nested(d_inode(dir), I_MUTEX_PARENT);
- dentry = lookup_one_len(last, dir, strlen(last));
+ inode_lock_nested(d_inode(parent.dentry), I_MUTEX_PARENT);
+ dentry = lookup_one_len(last, parent.dentry, strlen(last));
if (IS_ERR(dentry)) {
err = PTR_ERR(dentry);
ksmbd_debug(VFS, "%s: lookup failed, err %d\n", last, err);
@@ -588,12 +584,12 @@ int ksmbd_vfs_remove_file(struct ksmbd_work *work, char *name)
}
if (S_ISDIR(d_inode(dentry)->i_mode)) {
- err = vfs_rmdir(&init_user_ns, d_inode(dir), dentry);
+ err = vfs_rmdir(&init_user_ns, d_inode(parent.dentry), dentry);
if (err && err != -ENOTEMPTY)
ksmbd_debug(VFS, "%s: rmdir failed, err %d\n", name,
err);
} else {
- err = vfs_unlink(&init_user_ns, d_inode(dir), dentry, NULL);
+ err = vfs_unlink(&init_user_ns, d_inode(parent.dentry), dentry, NULL);
if (err)
ksmbd_debug(VFS, "%s: unlink failed, err %d\n", name,
err);
@@ -601,8 +597,7 @@ int ksmbd_vfs_remove_file(struct ksmbd_work *work, char *name)
dput(dentry);
out_err:
- inode_unlock(d_inode(dir));
-out:
+ inode_unlock(d_inode(parent.dentry));
rollback_path_modification(last);
path_put(&parent);
ksmbd_revert_fsids(work);