* [PATCH] [2.5] reiserfs: Fix handling of some extended inode attributes
@ 2003-08-08 13:42 Oleg Drokin
0 siblings, 0 replies; only message in thread
From: Oleg Drokin @ 2003-08-08 13:42 UTC (permalink / raw)
To: akpm, linux-kernel
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 | \
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-08-08 13:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-08 13:42 [PATCH] [2.5] reiserfs: Fix handling of some extended inode attributes Oleg Drokin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.