summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/9p/fid.c9
-rw-r--r--fs/9p/fid.h4
2 files changed, 6 insertions, 7 deletions
diff --git a/fs/9p/fid.c b/fs/9p/fid.c
index afd4724..71bc36a 100644
--- a/fs/9p/fid.c
+++ b/fs/9p/fid.c
@@ -54,14 +54,13 @@ int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid)
if (!dent)
return -ENOMEM;
- spin_lock_init(&dent->lock);
INIT_LIST_HEAD(&dent->fidlist);
dentry->d_fsdata = dent;
}
- spin_lock(&dent->lock);
+ spin_lock(&dentry->d_lock);
list_add(&fid->dlist, &dent->fidlist);
- spin_unlock(&dent->lock);
+ spin_unlock(&dentry->d_lock);
return 0;
}
@@ -85,14 +84,14 @@ static struct p9_fid *v9fs_fid_find(struct dentry *dentry, kuid_t uid, int any)
dent = (struct v9fs_dentry *) dentry->d_fsdata;
ret = NULL;
if (dent) {
- spin_lock(&dent->lock);
+ spin_lock(&dentry->d_lock);
list_for_each_entry(fid, &dent->fidlist, dlist) {
if (any || uid_eq(fid->uid, uid)) {
ret = fid;
break;
}
}
- spin_unlock(&dent->lock);
+ spin_unlock(&dentry->d_lock);
}
return ret;
diff --git a/fs/9p/fid.h b/fs/9p/fid.h
index bb0b6e7..469b5d5 100644
--- a/fs/9p/fid.h
+++ b/fs/9p/fid.h
@@ -25,7 +25,6 @@
/**
* struct v9fs_dentry - 9p private data stored in dentry d_fsdata
- * @lock: protects the fidlist
* @fidlist: list of FIDs currently associated with this dentry
*
* This structure defines the 9p private data associated with
@@ -35,11 +34,12 @@
* inodes in order to more closely map functionality to the Plan 9
* expected behavior for FID reclaimation and tracking.
*
+ * Protected by ->d_lock of dentry it belongs to.
+ *
* See Also: Mapping FIDs to Linux VFS model in
* Design and Implementation of the Linux 9P File System documentation
*/
struct v9fs_dentry {
- spinlock_t lock; /* protect fidlist */
struct list_head fidlist;
};
OpenPOWER on IntegriCloud