Whamcloud - gitweb
Define a new ext2 file attribute, EXT2_NOTAIL_FL,
authorTheodore Ts'o <tytso@mit.edu>
Tue, 6 Nov 2001 00:22:02 +0000 (19:22 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 6 Nov 2001 00:22:02 +0000 (19:22 -0500)
which signals that a particular inode should not have the
last bits of data (the "tail") be merged with another
file.  This is necessary to keep programs like LILO happy.

lib/e2p/ChangeLog
lib/e2p/pf.c
lib/ext2fs/ChangeLog
lib/ext2fs/ext2_fs.h
misc/ChangeLog
misc/chattr.1.in
misc/chattr.c

index 69b3297..5b40125 100644 (file)
@@ -1,3 +1,7 @@
+2001-11-05  Theodore Tso  <tytso@valinux.com>
+
+       * pf.c: Add a new file attribute, EXT2_NOTAIL_FL
+
 2001-09-20  Theodore Tso  <tytso@thunk.org>
 
        * Release of E2fsprogs 1.25
index 60f5dea..45c7b36 100644 (file)
@@ -38,6 +38,7 @@ static struct flags_name flags_array[] = {
        { EXT2_NOCOMPR_FL, "X", "Compression_Raw_Access" },
        { EXT2_ECOMPR_FL, "E", "Compression_Error" },
        { EXT3_JOURNAL_DATA_FL, "j", "Journaled_Data" },
+       { EXT2_NOTAIL_FL, "t", "No_Tailmerging" },
        { 0, NULL, NULL }
 };
 
index 19b6825..07ad68e 100644 (file)
@@ -1,3 +1,10 @@
+2001-11-05  Theodore Tso  <tytso@valinux.com>
+
+       * ext2_fs.h: Define a new ext2 file attribute, EXT2_NOTAIL_FL,
+               which signals that a particular inode should not have the
+               last bits of data (the "tail") be merged with another
+               file.  This is necessary to keep LILO happy.
+
 2001-09-20  Theodore Tso  <tytso@thunk.org>
 
        * Release of E2fsprogs 1.25
index 0eb7be7..38649df 100644 (file)
@@ -190,10 +190,11 @@ struct ext2_group_desc
 #define EXT2_INDEX_FL                  0x00001000 /* hash-indexed directory */
 #define EXT2_IMAGIC_FL                 0x00002000
 #define EXT3_JOURNAL_DATA_FL           0x00004000 /* file data should be journaled */
+#define EXT2_NOTAIL_FL                 0x00008000 /* file tail should not be merged */
 #define EXT2_RESERVED_FL               0x80000000 /* reserved for ext2 lib */
 
-#define EXT2_FL_USER_VISIBLE           0x00005FFF /* User visible flags */
-#define EXT2_FL_USER_MODIFIABLE                0x000000FF /* User modifiable flags */
+#define EXT2_FL_USER_VISIBLE           0x0000DFFF /* User visible flags */
+#define EXT2_FL_USER_MODIFIABLE                0x000080FF /* User modifiable flags */
 
 /*
  * ioctl commands
index e83f21f..d3e9aa5 100644 (file)
@@ -1,5 +1,10 @@
 2001-11-05  Theodore Tso  <tytso@valinux.com>
 
+       * chattr.1.in: Update the man page to document the EXT2_NOTAIL_FL
+               flag.
+
+       * chattr.c: Add support for the EXT2_NOTAIL_FL flag.
+
        * fsck.c (interpret_type): If the "auto" type is specified, make
                sure interpet_device() is called so that device
                specifications which use LABEL= or UUID= are translated
index 815e9c8..82f054b 100644 (file)
@@ -19,7 +19,7 @@ chattr \- change file attributes on a Linux second extended file system
 .B chattr
 changes the file attributes on a Linux second extended file system.
 .PP
-The format of a symbolic mode is +-=[ASacdisu].
+The format of a symbolic mode is +-=[ASacdistu].
 .PP
 The operator `+' causes the selected attributes to be added to the
 existing attributes of the files; `-' causes them to be removed; and
@@ -74,6 +74,12 @@ When a file with the `S' attribute set is modified,
 the changes are written synchronously on the disk; this is equivalent to
 the `sync' mount option applied to a subset of the files.
 .PP
+A file with the 't' attribute will not have a partial block fragment at
+the of the file merged with other files (for those filesystems which
+support tail-merging).  This is necessary for applications such as LILO 
+which read the filesystem directly, and who don't understand tail-merged
+files.
+.PP
 When a file with the `u' attribute set is deleted, its contents are saved.
 This allows the user to ask for its undeletion.
 .PP
index 730e7b8..f22d4c9 100644 (file)
@@ -96,6 +96,7 @@ static const struct flags_char flags_array[] = {
        { EXT3_JOURNAL_DATA_FL, 'j' },
        { EXT2_SECRM_FL, 's' },
        { EXT2_UNRM_FL, 'u' },
+       { EXT2_NOTAIL_FL, 't' },
        { 0, 0 }
 };