ANDROID: fsnotify: Notify lower fs of open

If the filesystem being watched supports d_canonical_path,
notify the lower filesystem of the open as well.

Fixes: f37e05049b ("ANDROID: vfs: d_canonical_path for stacked FS")
Bug: 70706497
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I7c9d210e8e6ee99928ad9db0b41ffc3ac3371dc0
This commit is contained in:
Daniel Rosenberg
2018-01-23 15:02:50 -08:00
committed by Alessio Balsini
parent b6f28f6377
commit b99f858e42

View File

@@ -87,6 +87,25 @@ static inline int fsnotify_file(struct file *file, __u32 mask)
if (file->f_mode & FMODE_NONOTIFY)
return 0;
/*
* Open calls notify early on, so lower file system must be notified
*/
if (mask == FS_OPEN) {
if (path->dentry->d_op &&
path->dentry->d_op->d_canonical_path) {
struct path lower_path;
int ret;
path->dentry->d_op->d_canonical_path(path, &lower_path);
ret = fsnotify_parent(lower_path.dentry, mask,
&lower_path, FSNOTIFY_EVENT_PATH);
path_put(&lower_path);
if (ret)
return ret;
}
}
return fsnotify_parent(path->dentry, mask, path, FSNOTIFY_EVENT_PATH);
}