summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValentine Barshak <vbarshak@ru.mvista.com>2006-01-08 01:03:44 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-08 20:14:00 -0800
commit87ba81dba431232548ce29d5d224115d0c2355ac (patch)
treed836d85ff9bfe404adf3975d4a2c8ee135f9392e
parent99aef427e206f4ae7dcf0b18f66416145fea5d20 (diff)
downloadlinux-stable-87ba81dba431232548ce29d5d224115d0c2355ac.tar.gz
linux-stable-87ba81dba431232548ce29d5d224115d0c2355ac.tar.bz2
linux-stable-87ba81dba431232548ce29d5d224115d0c2355ac.zip
[PATCH] fadvise: return ESPIPE on FIFO/pipe
The patch makes posix_fadvise return ESPIPE on FIFO/pipe in order to be fully POSIX-compliant. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--mm/fadvise.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/fadvise.c b/mm/fadvise.c
index 5f19e87bc5af..d257c89e7704 100644
--- a/mm/fadvise.c
+++ b/mm/fadvise.c
@@ -37,6 +37,11 @@ asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice)
if (!file)
return -EBADF;
+ if (S_ISFIFO(file->f_dentry->d_inode->i_mode)) {
+ ret = -ESPIPE;
+ goto out;
+ }
+
mapping = file->f_mapping;
if (!mapping || len < 0) {
ret = -EINVAL;