diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/reiserfs/ioctl.c | 6 | ||||
| -rw-r--r-- | fs/reiserfs/super.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c index 94dc42475a04..76caedf737f2 100644 --- a/fs/reiserfs/ioctl.c +++ b/fs/reiserfs/ioctl.c | |||
| @@ -36,10 +36,16 @@ int reiserfs_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
| 36 | /* following two cases are taken from fs/ext2/ioctl.c by Remy | 36 | /* following two cases are taken from fs/ext2/ioctl.c by Remy |
| 37 | Card (card@masi.ibp.fr) */ | 37 | Card (card@masi.ibp.fr) */ |
| 38 | case REISERFS_IOC_GETFLAGS: | 38 | case REISERFS_IOC_GETFLAGS: |
| 39 | if (!reiserfs_attrs (inode->i_sb)) | ||
| 40 | return -ENOTTY; | ||
| 41 | |||
| 39 | flags = REISERFS_I(inode) -> i_attrs; | 42 | flags = REISERFS_I(inode) -> i_attrs; |
| 40 | i_attrs_to_sd_attrs( inode, ( __u16 * ) &flags ); | 43 | i_attrs_to_sd_attrs( inode, ( __u16 * ) &flags ); |
| 41 | return put_user(flags, (int __user *) arg); | 44 | return put_user(flags, (int __user *) arg); |
| 42 | case REISERFS_IOC_SETFLAGS: { | 45 | case REISERFS_IOC_SETFLAGS: { |
| 46 | if (!reiserfs_attrs (inode->i_sb)) | ||
| 47 | return -ENOTTY; | ||
| 48 | |||
| 43 | if (IS_RDONLY(inode)) | 49 | if (IS_RDONLY(inode)) |
| 44 | return -EROFS; | 50 | return -EROFS; |
| 45 | 51 | ||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 660aefca1fd2..d50a5cd860ce 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
| @@ -1066,6 +1066,8 @@ static void handle_attrs( struct super_block *s ) | |||
| 1066 | reiserfs_warning(s, "reiserfs: cannot support attributes until flag is set in super-block" ); | 1066 | reiserfs_warning(s, "reiserfs: cannot support attributes until flag is set in super-block" ); |
| 1067 | REISERFS_SB(s) -> s_mount_opt &= ~ ( 1 << REISERFS_ATTRS ); | 1067 | REISERFS_SB(s) -> s_mount_opt &= ~ ( 1 << REISERFS_ATTRS ); |
| 1068 | } | 1068 | } |
| 1069 | } else if (le32_to_cpu( rs -> s_flags ) & reiserfs_attrs_cleared) { | ||
| 1070 | REISERFS_SB(s)->s_mount_opt |= REISERFS_ATTRS; | ||
| 1069 | } | 1071 | } |
| 1070 | } | 1072 | } |
| 1071 | 1073 | ||
