From: Linus Torvalds Date: Mon, 30 Sep 2013 15:35:10 +0000 (-0700) Subject: vfs: allow O_PATH file descriptors for fstatfs() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9d05746e7b16d8565dddbe3200faa1e669d23bbf;p=openwrt%2Fstaging%2Fblogic.git 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: ольга крыжановская Acked-by: Al Viro Cc: stable@kernel.org # O_PATH introduced in 3.0+ Signed-off-by: Linus Torvalds --- 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: int fd_statfs(int fd, struct kstatfs *st) { - struct fd f = fdget(fd); + struct fd f = fdget_raw(fd); int error = -EBADF; if (f.file) { error = vfs_statfs(&f.file->f_path, st);