public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [BK] [2.4] reiserfs: fix some issues with extended inode attributes
@ 2003-08-08 13:34 Oleg Drokin
  0 siblings, 0 replies; only message in thread
From: Oleg Drokin @ 2003-08-08 13:34 UTC (permalink / raw)
  To: marcelo, 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 it fixes incorrect comment in reiserfs_fs.h file, in fact
   we do support 't' attribute as "do not pack tail", not 'd' attribute
   as stated in the comment.
   Please pull from bk://namesys.com/bk/reiser3-linux-2.4-attrs-immut-append

Diffstat:
 fs/reiserfs/inode.c         |    4 ++++
 fs/reiserfs/ioctl.c         |    2 +-
 include/linux/reiserfs_fs.h |    3 ++-
 3 files changed, 7 insertions(+), 2 deletions(-)

Plain text patch:

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1064  -> 1.1065 
#	 fs/reiserfs/inode.c	1.48    -> 1.49   
#	 fs/reiserfs/ioctl.c	1.6     -> 1.7    
#	include/linux/reiserfs_fs.h	1.30    -> 1.31   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/08/08	green@angband.namesys.com	1.1065
# reiserfs: Add support for 'append-only' attribute, fix 'immutable' attribute handling, fix misleading comment
# --------------------------------------------
#
diff -Nru a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
--- a/fs/reiserfs/inode.c	Fri Aug  8 17:27:11 2003
+++ b/fs/reiserfs/inode.c	Fri Aug  8 17:27:11 2003
@@ -2181,6 +2181,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
diff -Nru a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c
--- a/fs/reiserfs/ioctl.c	Fri Aug  8 17:27:11 2003
+++ b/fs/reiserfs/ioctl.c	Fri Aug  8 17:27:11 2003
@@ -51,7 +51,7 @@
 		if (get_user(flags, (int *) arg))
 			return -EFAULT;
 
-		if ( ( flags & REISERFS_IMMUTABLE_FL ) && 
+		if ( ( ( flags ^ inode->u.reiserfs_i.i_attrs) & ( REISERFS_IMMUTABLE_FL | REISERFS_APPEND_FL)) && 
 		     !capable( CAP_LINUX_IMMUTABLE ) )
 			return -EPERM;
 			
diff -Nru a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
--- a/include/linux/reiserfs_fs.h	Fri Aug  8 17:27:11 2003
+++ b/include/linux/reiserfs_fs.h	Fri Aug  8 17:27:11 2003
@@ -867,6 +867,7 @@
 /* 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
@@ -877,7 +878,7 @@
    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
+   Teodore Tso allocated EXT2_NOTAIL_FL (0x00008000) for this. Change
    numeric constant to ext2 macro when available. */
 #define REISERFS_NOTAIL_FL    (0x00008000) /* EXT2_NOTAIL_FL */
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-08-08 13:34 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:34 [BK] [2.4] reiserfs: fix some issues with extended inode attributes Oleg Drokin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox