Messages in this thread Patch in this message | | | Date | Fri, 8 Aug 2003 17:42:11 +0400 | From | Oleg Drokin <> | Subject | [PATCH] [2.5] reiserfs: Fix handling of some extended inode attributes |
| |
Hello!
This patch fixes a problem in reiserfs' handling of immutable attribute, where every user (not just root) can unset it. Also it adds "append-only" attribute "support" (all the support is in VFS anyway, we only recognise the bit now). Also misleading comment in reiserfs_fs.h is removed. Please apply.
Bye, Oleg
===== fs/reiserfs/inode.c 1.79 vs edited ===== --- 1.79/fs/reiserfs/inode.c Fri Jul 11 09:22:55 2003 +++ edited/fs/reiserfs/inode.c Wed Aug 6 18:14:02 2003 @@ -2236,6 +2236,10 @@ inode -> i_flags |= S_IMMUTABLE; else inode -> i_flags &= ~S_IMMUTABLE; + if( sd_attrs & REISERFS_APPEND_FL ) + inode -> i_flags |= S_APPEND; + else + inode -> i_flags &= ~S_APPEND; if( sd_attrs & REISERFS_NOATIME_FL ) inode -> i_flags |= S_NOATIME; else ===== fs/reiserfs/ioctl.c 1.11 vs edited ===== --- 1.11/fs/reiserfs/ioctl.c Mon May 26 01:07:50 2003 +++ edited/fs/reiserfs/ioctl.c Wed Aug 6 18:13:53 2003 @@ -47,7 +47,7 @@ if (get_user(flags, (int *) arg)) return -EFAULT; - if ( ( flags & REISERFS_IMMUTABLE_FL ) && + if ( ( ( flags ^ REISERFS_I(inode) -> i_attrs) & ( REISERFS_IMMUTABLE_FL | REISERFS_APPEND_FL)) && !capable( CAP_LINUX_IMMUTABLE ) ) return -EPERM; ===== include/linux/reiserfs_fs.h 1.50 vs edited ===== --- 1.50/include/linux/reiserfs_fs.h Fri Jul 11 09:22:55 2003 +++ edited/include/linux/reiserfs_fs.h Wed Aug 6 20:07:30 2003 @@ -879,19 +879,14 @@ /* we want common flags to have the same values as in ext2, so chattr(1) will work without problems */ #define REISERFS_IMMUTABLE_FL EXT2_IMMUTABLE_FL +#define REISERFS_APPEND_FL EXT2_APPEND_FL #define REISERFS_SYNC_FL EXT2_SYNC_FL #define REISERFS_NOATIME_FL EXT2_NOATIME_FL #define REISERFS_NODUMP_FL EXT2_NODUMP_FL #define REISERFS_SECRM_FL EXT2_SECRM_FL #define REISERFS_UNRM_FL EXT2_UNRM_FL #define REISERFS_COMPR_FL EXT2_COMPR_FL -/* persistent flag to disable tails on per-file basic. - Note, that is inheritable: mark directory with this and - all new files inside will not have tails. - - Teodore Tso allocated EXT2_NODUMP_FL (0x00008000) for this. Change - numeric constant to ext2 macro when available. */ -#define REISERFS_NOTAIL_FL (0x00008000) /* EXT2_NOTAIL_FL */ +#define REISERFS_NOTAIL_FL EXT2_NOTAIL_FL /* persistent flags that file inherits from the parent directory */ #define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL | \ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |