@@ -119,18 +119,10 @@ static int bpf_inode_type(const struct inode *inode, enum bpf_type *type)
119
119
return 0 ;
120
120
}
121
121
122
- static bool bpf_dname_reserved (const struct dentry * dentry )
123
- {
124
- return strchr (dentry -> d_name .name , '.' );
125
- }
126
-
127
122
static int bpf_mkdir (struct inode * dir , struct dentry * dentry , umode_t mode )
128
123
{
129
124
struct inode * inode ;
130
125
131
- if (bpf_dname_reserved (dentry ))
132
- return - EPERM ;
133
-
134
126
inode = bpf_get_inode (dir -> i_sb , dir , mode | S_IFDIR );
135
127
if (IS_ERR (inode ))
136
128
return PTR_ERR (inode );
@@ -152,9 +144,6 @@ static int bpf_mkobj_ops(struct inode *dir, struct dentry *dentry,
152
144
{
153
145
struct inode * inode ;
154
146
155
- if (bpf_dname_reserved (dentry ))
156
- return - EPERM ;
157
-
158
147
inode = bpf_get_inode (dir -> i_sb , dir , mode | S_IFREG );
159
148
if (IS_ERR (inode ))
160
149
return PTR_ERR (inode );
@@ -187,31 +176,21 @@ static int bpf_mkobj(struct inode *dir, struct dentry *dentry, umode_t mode,
187
176
}
188
177
}
189
178
190
- static int bpf_link ( struct dentry * old_dentry , struct inode * dir ,
191
- struct dentry * new_dentry )
179
+ static struct dentry *
180
+ bpf_lookup ( struct inode * dir , struct dentry * dentry , unsigned flags )
192
181
{
193
- if (bpf_dname_reserved (new_dentry ))
194
- return - EPERM ;
195
-
196
- return simple_link (old_dentry , dir , new_dentry );
197
- }
198
-
199
- static int bpf_rename (struct inode * old_dir , struct dentry * old_dentry ,
200
- struct inode * new_dir , struct dentry * new_dentry )
201
- {
202
- if (bpf_dname_reserved (new_dentry ))
203
- return - EPERM ;
204
-
205
- return simple_rename (old_dir , old_dentry , new_dir , new_dentry );
182
+ if (strchr (dentry -> d_name .name , '.' ))
183
+ return ERR_PTR (- EPERM );
184
+ return simple_lookup (dir , dentry , flags );
206
185
}
207
186
208
187
static const struct inode_operations bpf_dir_iops = {
209
- .lookup = simple_lookup ,
188
+ .lookup = bpf_lookup ,
210
189
.mknod = bpf_mkobj ,
211
190
.mkdir = bpf_mkdir ,
212
191
.rmdir = simple_rmdir ,
213
- .rename = bpf_rename ,
214
- .link = bpf_link ,
192
+ .rename = simple_rename ,
193
+ .link = simple_link ,
215
194
.unlink = simple_unlink ,
216
195
};
217
196
0 commit comments