* [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 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.