aboutsummaryrefslogtreecommitdiff
path: root/mm/debug.c
diff options
context:
space:
mode:
authorMiklos Szeredi2020-06-02 22:20:25 +0200
committerMiklos Szeredi2020-06-02 22:20:25 +0200
commit130fdbc3d1f9966dd4230709c30f3768bccd3065 (patch)
tree14a6b29ee13fd5133070580d3326e2cac41c60b1 /mm/debug.c
parent21d8d66abffb0c7834c1b09b8b043ea6a66d6089 (diff)
ovl: pass correct flags for opening real directory
The three instances of ovl_path_open() in overlayfs/readdir.c do three different things: - pass f_flags from overlay file - pass O_RDONLY | O_DIRECTORY - pass just O_RDONLY The value of f_flags can be (other than O_RDONLY): O_WRONLY - not possible for a directory O_RDWR - not possible for a directory O_CREAT - masked out by dentry_open() O_EXCL - masked out by dentry_open() O_NOCTTY - masked out by dentry_open() O_TRUNC - masked out by dentry_open() O_APPEND - no effect on directory ops O_NDELAY - no effect on directory ops O_NONBLOCK - no effect on directory ops __O_SYNC - no effect on directory ops O_DSYNC - no effect on directory ops FASYNC - no effect on directory ops O_DIRECT - no effect on directory ops O_LARGEFILE - ? O_DIRECTORY - only affects lookup O_NOFOLLOW - only affects lookup O_NOATIME - overlay sets this unconditionally in ovl_path_open() O_CLOEXEC - only affects fd allocation O_PATH - no effect on directory ops __O_TMPFILE - not possible for a directory Fon non-merge directories we use the underlying filesystem's iterate; in this case honor O_LARGEFILE from the original file to make sure that open doesn't get rejected. For merge directories it's safe to pass O_LARGEFILE unconditionally since userspace will only see the artificial offsets created by overlayfs. Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'mm/debug.c')
0 files changed, 0 insertions, 0 deletions