Skip to content

Commit

Permalink
switch 9p
Browse files Browse the repository at this point in the history
here we actually *want* ->d_op for root; setting it allows to get rid
of kludge in v9fs_kill_super() since now we have proper ->d_release()
for root and don't need to call it manually.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Jan 13, 2011
1 parent c74a1cb commit 98cd3fb
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 10 deletions.
1 change: 0 additions & 1 deletion fs/9p/v9fs_vfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ void v9fs_stat2inode_dotl(struct p9_stat_dotl *, struct inode *);
int v9fs_dir_release(struct inode *inode, struct file *filp);
int v9fs_file_open(struct inode *inode, struct file *file);
void v9fs_inode2stat(struct inode *inode, struct p9_wstat *stat);
void v9fs_dentry_release(struct dentry *);
int v9fs_uflags2omode(int uflags, int extended);

ssize_t v9fs_file_readn(struct file *, char *, char __user *, u32, u64);
Expand Down
2 changes: 1 addition & 1 deletion fs/9p/vfs_dentry.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ static int v9fs_cached_dentry_delete(const struct dentry *dentry)
*
*/

void v9fs_dentry_release(struct dentry *dentry)
static void v9fs_dentry_release(struct dentry *dentry)
{
struct v9fs_dentry *dent;
struct p9_fid *temp, *current_fid;
Expand Down
5 changes: 0 additions & 5 deletions fs/9p/vfs_inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -699,11 +699,6 @@ struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
goto error_iput;

inst_out:
if (v9ses->cache)
d_set_d_op(dentry, &v9fs_cached_dentry_operations);
else
d_set_d_op(dentry, &v9fs_dentry_operations);

d_add(dentry, inode);
return NULL;

Expand Down
8 changes: 5 additions & 3 deletions fs/9p/vfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,11 @@ static struct dentry *v9fs_mount(struct file_system_type *fs_type, int flags,
}
v9fs_fill_super(sb, v9ses, flags, data);

if (v9ses->cache)
sb->s_d_op = &v9fs_cached_dentry_operations;
else
sb->s_d_op = &v9fs_dentry_operations;

inode = v9fs_get_inode(sb, S_IFDIR | mode);
if (IS_ERR(inode)) {
retval = PTR_ERR(inode);
Expand Down Expand Up @@ -217,9 +222,6 @@ static void v9fs_kill_super(struct super_block *s)

P9_DPRINTK(P9_DEBUG_VFS, " %p\n", s);

if (s->s_root)
v9fs_dentry_release(s->s_root); /* clunk root */

kill_anon_super(s);

v9fs_session_cancel(v9ses);
Expand Down

0 comments on commit 98cd3fb

Please sign in to comment.