diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2014-10-20 23:36:49 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-03 15:21:18 -0500 |
| commit | fd5c6c36a288cc15bd43f37c2be4787c41bc928f (patch) | |
| tree | 854d7691ee2aec1370d28d88cb37210e1a05b249 | |
| parent | 59cc93ef27cd6acec0f67e5f185ff21efbcaabcb (diff) | |
lustre: get rid of duplicate mountpoint checks
VFS has already done them
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | drivers/staging/lustre/lustre/llite/namei.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 9ea878238b62..02283c533f5b 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c | |||
| @@ -54,27 +54,6 @@ | |||
| 54 | static int ll_create_it(struct inode *, struct dentry *, | 54 | static int ll_create_it(struct inode *, struct dentry *, |
| 55 | int, struct lookup_intent *); | 55 | int, struct lookup_intent *); |
| 56 | 56 | ||
| 57 | /* | ||
| 58 | * Check if we have something mounted at the named dchild. | ||
| 59 | * In such a case there would always be dentry present. | ||
| 60 | */ | ||
| 61 | static int ll_d_mountpoint(struct dentry *dparent, struct dentry *dchild, | ||
| 62 | struct qstr *name) | ||
| 63 | { | ||
| 64 | int mounted = 0; | ||
| 65 | |||
| 66 | if (unlikely(dchild)) { | ||
| 67 | mounted = d_mountpoint(dchild); | ||
| 68 | } else if (dparent) { | ||
| 69 | dchild = d_lookup(dparent, name); | ||
| 70 | if (dchild) { | ||
| 71 | mounted = d_mountpoint(dchild); | ||
| 72 | dput(dchild); | ||
| 73 | } | ||
| 74 | } | ||
| 75 | return mounted; | ||
| 76 | } | ||
| 77 | |||
| 78 | /* called from iget5_locked->find_inode() under inode_hash_lock spinlock */ | 57 | /* called from iget5_locked->find_inode() under inode_hash_lock spinlock */ |
| 79 | static int ll_test_inode(struct inode *inode, void *opaque) | 58 | static int ll_test_inode(struct inode *inode, void *opaque) |
| 80 | { | 59 | { |
| @@ -1003,13 +982,6 @@ static int ll_unlink(struct inode * dir, struct dentry *dentry) | |||
| 1003 | CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)\n", | 982 | CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)\n", |
| 1004 | dentry, dir->i_ino, dir->i_generation, dir); | 983 | dentry, dir->i_ino, dir->i_generation, dir); |
| 1005 | 984 | ||
| 1006 | /* | ||
| 1007 | * XXX: unlink bind mountpoint maybe call to here, | ||
| 1008 | * just check it as vfs_unlink does. | ||
| 1009 | */ | ||
| 1010 | if (unlikely(ll_d_mountpoint(NULL, dentry, &dentry->d_name))) | ||
| 1011 | return -EBUSY; | ||
| 1012 | |||
| 1013 | op_data = ll_prep_md_op_data(NULL, dir, NULL, | 985 | op_data = ll_prep_md_op_data(NULL, dir, NULL, |
| 1014 | dentry->d_name.name, | 986 | dentry->d_name.name, |
| 1015 | dentry->d_name.len, | 987 | dentry->d_name.len, |
| @@ -1060,9 +1032,6 @@ static int ll_rmdir(struct inode *dir, struct dentry *dentry) | |||
| 1060 | CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)\n", | 1032 | CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)\n", |
| 1061 | dentry, dir->i_ino, dir->i_generation, dir); | 1033 | dentry, dir->i_ino, dir->i_generation, dir); |
| 1062 | 1034 | ||
| 1063 | if (unlikely(ll_d_mountpoint(NULL, dentry, &dentry->d_name))) | ||
| 1064 | return -EBUSY; | ||
| 1065 | |||
| 1066 | op_data = ll_prep_md_op_data(NULL, dir, NULL, | 1035 | op_data = ll_prep_md_op_data(NULL, dir, NULL, |
| 1067 | dentry->d_name.name, | 1036 | dentry->d_name.name, |
| 1068 | dentry->d_name.len, | 1037 | dentry->d_name.len, |
| @@ -1147,10 +1116,6 @@ static int ll_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
| 1147 | old_dir->i_ino, old_dir->i_generation, old_dir, new_dentry, | 1116 | old_dir->i_ino, old_dir->i_generation, old_dir, new_dentry, |
| 1148 | new_dir->i_ino, new_dir->i_generation, new_dir); | 1117 | new_dir->i_ino, new_dir->i_generation, new_dir); |
| 1149 | 1118 | ||
| 1150 | if (unlikely(ll_d_mountpoint(NULL, old_dentry, &old_dentry->d_name) || | ||
| 1151 | ll_d_mountpoint(NULL, new_dentry, &new_dentry->d_name))) | ||
| 1152 | return -EBUSY; | ||
| 1153 | |||
| 1154 | op_data = ll_prep_md_op_data(NULL, old_dir, new_dir, NULL, 0, 0, | 1119 | op_data = ll_prep_md_op_data(NULL, old_dir, new_dir, NULL, 0, 0, |
| 1155 | LUSTRE_OPC_ANY, NULL); | 1120 | LUSTRE_OPC_ANY, NULL); |
| 1156 | if (IS_ERR(op_data)) | 1121 | if (IS_ERR(op_data)) |
