9p: Reorganization of 9p file system code
This patchset moves non-filesystem interfaces of v9fs from fs/9p to net/9p. It moves the transport, packet marshalling and connection layers to net/9p leaving only the VFS related files in fs/9p. This work is being done in preparation for in-kernel 9p servers as well as alternate 9p clients (other than VFS). Signed-off-by: Latchesar Ionkov <lucho@ionkov.net> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
committed by
Eric Van Hensbergen
parent
8d9107e8c5
commit
bd238fb431
@ -34,10 +34,10 @@
|
||||
#include <linux/namei.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/sched.h>
|
||||
#include <net/9p/9p.h>
|
||||
#include <net/9p/client.h>
|
||||
|
||||
#include "debug.h"
|
||||
#include "v9fs.h"
|
||||
#include "9p.h"
|
||||
#include "v9fs_vfs.h"
|
||||
#include "fid.h"
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
|
||||
static int v9fs_dentry_delete(struct dentry *dentry)
|
||||
{
|
||||
dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -69,7 +69,7 @@ static int v9fs_dentry_delete(struct dentry *dentry)
|
||||
static int v9fs_cached_dentry_delete(struct dentry *dentry)
|
||||
{
|
||||
struct inode *inode = dentry->d_inode;
|
||||
dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
|
||||
if(!inode)
|
||||
return 1;
|
||||
@ -85,26 +85,19 @@ static int v9fs_cached_dentry_delete(struct dentry *dentry)
|
||||
|
||||
void v9fs_dentry_release(struct dentry *dentry)
|
||||
{
|
||||
int err;
|
||||
struct v9fs_dentry *dent;
|
||||
struct p9_fid *temp, *current_fid;
|
||||
|
||||
dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
|
||||
if (dentry->d_fsdata != NULL) {
|
||||
struct list_head *fid_list = dentry->d_fsdata;
|
||||
struct v9fs_fid *temp = NULL;
|
||||
struct v9fs_fid *current_fid = NULL;
|
||||
|
||||
list_for_each_entry_safe(current_fid, temp, fid_list, list) {
|
||||
err = v9fs_t_clunk(current_fid->v9ses, current_fid->fid);
|
||||
|
||||
if (err < 0)
|
||||
dprintk(DEBUG_ERROR, "clunk failed: %d name %s\n",
|
||||
err, dentry->d_iname);
|
||||
|
||||
v9fs_fid_destroy(current_fid);
|
||||
P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
|
||||
dent = dentry->d_fsdata;
|
||||
if (dent) {
|
||||
list_for_each_entry_safe(current_fid, temp, &dent->fidlist,
|
||||
dlist) {
|
||||
p9_client_clunk(current_fid);
|
||||
}
|
||||
|
||||
kfree(dentry->d_fsdata); /* free the list_head */
|
||||
kfree(dent);
|
||||
dentry->d_fsdata = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user