vfs: change d_canonical_path to take two paths
bug: 23904372 Change-Id: I4a686d64b6de37decf60019be1718e1d820193e6 Signed-off-by: Daniel Rosenberg <drosen@google.com>
This commit is contained in:
parent
aaed164e81
commit
6fa18ffc71
3 changed files with 7 additions and 3 deletions
|
@ -746,7 +746,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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ struct dentry_operations {
|
|||
struct vfsmount *(*d_automount)(struct path *);
|
||||
int (*d_manage)(struct dentry *, bool);
|
||||
struct inode *(*d_select_inode)(struct dentry *, unsigned);
|
||||
void (*d_canonical_path)(const struct dentry *, struct path *);
|
||||
void (*d_canonical_path)(const struct path *, struct path *);
|
||||
struct dentry *(*d_real)(struct dentry *, struct inode *);
|
||||
} ____cacheline_aligned;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue