[PATCH] reiserfs: Check if attrs are enabled for attr ioctls
authorJeff Mahoney <jeffm@suse.com>
Wed, 29 Jun 2005 22:52:28 +0000 (18:52 -0400)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 30 Jun 2005 04:02:04 +0000 (21:02 -0700)
ReiserFS currently will allow the user to set/get attrs for files
regardless if they are enabled.  The patch checks to see if they are
enabled, and returns -NOTTY if they are not.

ext[23] doesn't need this check because attrs are always enabled.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/reiserfs/ioctl.c

index 94dc42475a0462cfa7997ec68fa20383658d96e3..76caedf737f260a7b1212c9681ff90188b472378 100644 (file)
@@ -36,10 +36,16 @@ int reiserfs_ioctl (struct inode * inode, struct file * filp, unsigned int cmd,
        /* following two cases are taken from fs/ext2/ioctl.c by Remy
           Card (card@masi.ibp.fr) */
        case REISERFS_IOC_GETFLAGS:
        /* following two cases are taken from fs/ext2/ioctl.c by Remy
           Card (card@masi.ibp.fr) */
        case REISERFS_IOC_GETFLAGS:
+               if (!reiserfs_attrs (inode->i_sb))
+                       return -ENOTTY;
+
                flags = REISERFS_I(inode) -> i_attrs;
                i_attrs_to_sd_attrs( inode, ( __u16 * ) &flags );
                return put_user(flags, (int __user *) arg);
        case REISERFS_IOC_SETFLAGS: {
                flags = REISERFS_I(inode) -> i_attrs;
                i_attrs_to_sd_attrs( inode, ( __u16 * ) &flags );
                return put_user(flags, (int __user *) arg);
        case REISERFS_IOC_SETFLAGS: {
+               if (!reiserfs_attrs (inode->i_sb))
+                       return -ENOTTY;
+
                if (IS_RDONLY(inode))
                        return -EROFS;
 
                if (IS_RDONLY(inode))
                        return -EROFS;