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

Commit 0fc44626 authored by Daniel Rosenberg's avatar Daniel Rosenberg
Browse files

vfs: change d_canonical_path to take two paths



bug: 23904372
Change-Id: I4a686d64b6de37decf60019be1718e1d820193e6
Signed-off-by: default avatarDaniel Rosenberg <drosen@google.com>
parent c37b1603
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -735,7 +735,7 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname,
	/* support stacked filesystems */
	if(path.dentry && path.dentry->d_op) {
		if (path.dentry->d_op->d_canonical_path) {
			path.dentry->d_op->d_canonical_path(path.dentry, &alteredpath);
			path.dentry->d_op->d_canonical_path(&path, &alteredpath);
			canonical_path = &alteredpath;
			path_put(&path);
		}
+5 −1
Original line number Diff line number Diff line
@@ -172,11 +172,15 @@ static int sdcardfs_cmp_ci(const struct dentry *parent,
	return 1;
}

static void sdcardfs_canonical_path(const struct path *path, struct path *actual_path) {
	sdcardfs_get_real_lower(path->dentry, actual_path);
}

const struct dentry_operations sdcardfs_ci_dops = {
	.d_revalidate	= sdcardfs_d_revalidate,
	.d_release	= sdcardfs_d_release,
	.d_hash 	= sdcardfs_hash_ci,
	.d_compare	= sdcardfs_cmp_ci,
	.d_canonical_path = sdcardfs_get_real_lower,
	.d_canonical_path = sdcardfs_canonical_path,
};
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ struct dentry_operations {
	char *(*d_dname)(struct dentry *, char *, int);
	struct vfsmount *(*d_automount)(struct path *);
	int (*d_manage)(struct dentry *, bool);
	void (*d_canonical_path)(const struct dentry *, struct path *);
	void (*d_canonical_path)(const struct path *, struct path *);
} ____cacheline_aligned;

/*