This patch returns an error code if the caller attempts to open a sysfs
file for appending.

Generated from 2.6.11-rc2.

Signed-off-by:  Mitch Williams <[EMAIL PROTECTED]>

diff -urpN -X dontdiff linux-2.6.11-clean/fs/sysfs/file.c 
linux-2.6.11/fs/sysfs/file.c
--- linux-2.6.11-clean/fs/sysfs/file.c  2004-12-24 13:33:50.000000000 -0800
+++ linux-2.6.11/fs/sysfs/file.c        2005-01-25 14:59:33.000000000 -0800
@@ -275,6 +275,15 @@ static int check_perm(struct inode * ino
        if (!ops)
                goto Eaccess;

+        /* Return error if the file is open for append.
+         * Sysfs can't support append because the kobject
+         * store methods don't take an offset into the buffer
+         * as an argument.  They end up thinking the appended
+         * data is the entire contents of the file.
+         */
+       if (file->f_flags & O_APPEND)
+               goto Einval;
+
        /* File needs write support.
         * The inode's perms must say it's ok,
         * and we must have a store method.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to