Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 634095da authored by Al Viro's avatar Al Viro
Browse files

9p: don't bother with private lock in ->d_fsdata; dentry->d_lock will do just fine



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 6131ffaa
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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;
};