diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-30 11:35:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-10-12 16:12:31 -0400 |
commit | 9d05746e7b16d8565dddbe3200faa1e669d23bbf (patch) | |
tree | 34338d6fa3c2998692940da9db3ed7884cda74f3 | |
parent | be5090da4abb68caa69ac62ae5253ac540aa829a (diff) |
vfs: allow O_PATH file descriptors for fstatfs()
Olga reported that file descriptors opened with O_PATH do not work with
fstatfs(), found during further development of ksh93's thread support.
There is no reason to not allow O_PATH file descriptors here (fstatfs is
very much a path operation), so use "fdget_raw()". See commit
55815f70147d ("vfs: make O_PATH file descriptors usable for 'fstat()'")
for a very similar issue reported for fstat() by the same team.
Reported-and-tested-by: ольга крыжановская <olga.kryzhanovska@gmail.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: stable@kernel.org # O_PATH introduced in 3.0+
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/statfs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/statfs.c b/fs/statfs.c index c219e733f553..083dc0ac9140 100644 --- a/fs/statfs.c +++ b/fs/statfs.c | |||
@@ -94,7 +94,7 @@ retry: | |||
94 | 94 | ||
95 | int fd_statfs(int fd, struct kstatfs *st) | 95 | int fd_statfs(int fd, struct kstatfs *st) |
96 | { | 96 | { |
97 | struct fd f = fdget(fd); | 97 | struct fd f = fdget_raw(fd); |
98 | int error = -EBADF; | 98 | int error = -EBADF; |
99 | if (f.file) { | 99 | if (f.file) { |
100 | error = vfs_statfs(&f.file->f_path, st); | 100 | error = vfs_statfs(&f.file->f_path, st); |