summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/e2p/ChangeLog4
-rw-r--r--lib/e2p/pf.c1
-rw-r--r--lib/ext2fs/ChangeLog7
-rw-r--r--lib/ext2fs/ext2_fs.h5
-rw-r--r--misc/ChangeLog5
-rw-r--r--misc/chattr.1.in8
-rw-r--r--misc/chattr.c1
7 files changed, 28 insertions, 3 deletions
diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog
index 69b32978..5b401255 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 60f5dea4..45c7b368 100644
--- a/lib/e2p/pf.c
+++ b/lib/e2p/pf.c
@@ -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 }
};
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index 19b68257..07ad68ea 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 0eb7be71..38649dfe 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -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
diff --git a/misc/ChangeLog b/misc/ChangeLog
index e83f21f2..d3e9aa5e 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 815e9c85..82f054bb 100644
--- a/misc/chattr.1.in
+++ b/misc/chattr.1.in
@@ -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
diff --git a/misc/chattr.c b/misc/chattr.c
index 730e7b8b..f22d4c90 100644
--- a/misc/chattr.c
+++ b/misc/chattr.c
@@ -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 }
};