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 programs like LILO happy.

diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog
index 69b3297..5b40125 100644
--- a/lib/e2p/ChangeLog
+++ b/lib/e2p/ChangeLog
@@ -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
diff --git a/lib/e2p/pf.c b/lib/e2p/pf.c
index 60f5dea..45c7b36 100644
--- a/lib/e2p/pf.c
+++ b/lib/e2p/pf.c
@@ -38,6 +38,7 @@
 	{ 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 }
 };
 
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index 19b6825..07ad68e 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -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
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
index 0eb7be7..38649df 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -190,10 +190,11 @@
 #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
diff --git a/misc/ChangeLog b/misc/ChangeLog
index e83f21f..d3e9aa5 100644
--- a/misc/ChangeLog
+++ b/misc/ChangeLog
@@ -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
diff --git a/misc/chattr.1.in b/misc/chattr.1.in
index 815e9c8..82f054b 100644
--- a/misc/chattr.1.in
+++ b/misc/chattr.1.in
@@ -19,7 +19,7 @@
 .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 @@
 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
diff --git a/misc/chattr.c b/misc/chattr.c
index 730e7b8..f22d4c9 100644
--- a/misc/chattr.c
+++ b/misc/chattr.c
@@ -96,6 +96,7 @@
 	{ EXT3_JOURNAL_DATA_FL, 'j' },
 	{ EXT2_SECRM_FL, 's' },
 	{ EXT2_UNRM_FL, 'u' },
+	{ EXT2_NOTAIL_FL, 't' },
 	{ 0, 0 }
 };