summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@fedoraproject.org>2009-01-10 16:40:49 +0000
committerEric Sandeen <sandeen@fedoraproject.org>2009-01-10 16:40:49 +0000
commita5b4797b7b542c62e68be1453091ae0baa45bbbb (patch)
treeb74abb01108f712b4ae87b003503652dee5b069b
parentfaf9784c4ab3997339325d39a616d9ec776af6dd (diff)
downloade2fsprogs-a5b4797b7b542c62e68be1453091ae0baa45bbbb.tar.gz
e2fsprogs-a5b4797b7b542c62e68be1453091ae0baa45bbbb.tar.xz
e2fsprogs-a5b4797b7b542c62e68be1453091ae0baa45bbbb.zip
* Sat Jan 10 2009 Eric Sandeen <sandeen@redhat.com> 1.41.3-3e2fsprogs-1_41_3-3_fc11
- Remove conservative "don't change journal location" patch for F11 - Add btrfs recognition to blkid
-rw-r--r--e2fsprogs-1.41.3-blkid-btrfs.patch165
-rw-r--r--e2fsprogs-journal-move.patch19
-rw-r--r--e2fsprogs.spec8
3 files changed, 171 insertions, 21 deletions
diff --git a/e2fsprogs-1.41.3-blkid-btrfs.patch b/e2fsprogs-1.41.3-blkid-btrfs.patch
new file mode 100644
index 0000000..8f236af
--- /dev/null
+++ b/e2fsprogs-1.41.3-blkid-btrfs.patch
@@ -0,0 +1,165 @@
+Add btrfs detection to libblkid, now that the disk format should be
+recognizable in the future.
+
+# misc/blkid /tmp/fsfile
+/tmp/fsfile: LABEL="mylabel" UUID="102b07f0-0e79-4b42-8a4e-1dde418bbe6d" TYPE="btrfs"
+
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+---
+
+Index: e2fsprogs/lib/blkid/probe.c
+===================================================================
+--- e2fsprogs.orig/lib/blkid/probe.c
++++ e2fsprogs/lib/blkid/probe.c
+@@ -1293,6 +1293,22 @@ static int probe_lvm2(struct blkid_probe
+
+ return 0;
+ }
++
++static int probe_btrfs(struct blkid_probe *probe,
++ struct blkid_magic *id,
++ unsigned char *buf)
++{
++ struct btrfs_super_block *bs;
++ const char *label = 0;
++
++ bs = (struct btrfs_super_block *)buf;
++
++ if (strlen(bs->label))
++ label = bs->label;
++ blkid_set_tag(probe->dev, "LABEL", label, sizeof(bs->label));
++ set_uuid(probe->dev, bs->fsid, 0);
++ return 0;
++}
+ /*
+ * Various filesystem magics that we can check for. Note that kboff and
+ * sboff are in kilobytes and bytes respectively. All magics are in
+@@ -1386,6 +1402,7 @@ static struct blkid_magic type_array[] =
+ { "lvm2pv", 0, 0x018, 8, "LVM2 001", probe_lvm2 },
+ { "lvm2pv", 1, 0x018, 8, "LVM2 001", probe_lvm2 },
+ { "lvm2pv", 1, 0x218, 8, "LVM2 001", probe_lvm2 },
++ { "btrfs", 64, 0x40, 8, "_BHRfS_M", probe_btrfs },
+ { NULL, 0, 0, 0, NULL, NULL }
+ };
+
+Index: e2fsprogs/lib/blkid/probe.h
+===================================================================
+--- e2fsprogs.orig/lib/blkid/probe.h
++++ e2fsprogs/lib/blkid/probe.h
+@@ -621,6 +621,110 @@ struct lvm2_pv_label_header {
+ __u8 pv_uuid[LVM2_ID_LEN];
+ } __attribute__ ((packed));
+
++
++/*
++ * this is a very generous portion of the super block, giving us
++ * room to translate 14 chunks with 3 stripes each.
++ */
++#define BTRFS_SYSTEM_CHUNK_ARRAY_SIZE 2048
++#define BTRFS_LABEL_SIZE 256
++#define BTRFS_UUID_SIZE 16
++#define BTRFS_FSID_SIZE 16
++#define BTRFS_CSUM_SIZE 32
++
++struct btrfs_dev_item {
++ /* the internal btrfs device id */
++ __u64 devid;
++
++ /* size of the device */
++ __u64 total_bytes;
++
++ /* bytes used */
++ __u64 bytes_used;
++
++ /* optimal io alignment for this device */
++ __u32 io_align;
++
++ /* optimal io width for this device */
++ __u32 io_width;
++
++ /* minimal io size for this device */
++ __u32 sector_size;
++
++ /* type and info about this device */
++ __u64 type;
++
++ /* expected generation for this device */
++ __u64 generation;
++
++ /*
++ * starting byte of this partition on the device,
++ * to allowr for stripe alignment in the future
++ */
++ __u64 start_offset;
++
++ /* grouping information for allocation decisions */
++ __u32 dev_group;
++
++ /* seek speed 0-100 where 100 is fastest */
++ __u8 seek_speed;
++
++ /* bandwidth 0-100 where 100 is fastest */
++ __u8 bandwidth;
++
++ /* btrfs generated uuid for this device */
++ __u8 uuid[BTRFS_UUID_SIZE];
++
++ /* uuid of FS who owns this device */
++ __u8 fsid[BTRFS_UUID_SIZE];
++} __attribute__ ((__packed__));
++
++/*
++ * the super block basically lists the main trees of the FS
++ * it currently lacks any block count etc etc
++ */
++struct btrfs_super_block {
++ __u8 csum[BTRFS_CSUM_SIZE];
++ /* the first 3 fields must match struct btrfs_header */
++ __u8 fsid[BTRFS_FSID_SIZE]; /* FS specific uuid */
++ __u64 bytenr; /* this block number */
++ __u64 flags;
++
++ /* allowed to be different from the btrfs_header from here own down */
++ __u64 magic;
++ __u64 generation;
++ __u64 root;
++ __u64 chunk_root;
++ __u64 log_root;
++
++ /* this will help find the new super based on the log root */
++ __u64 log_root_transid;
++ __u64 total_bytes;
++ __u64 bytes_used;
++ __u64 root_dir_objectid;
++ __u64 num_devices;
++ __u32 sectorsize;
++ __u32 nodesize;
++ __u32 leafsize;
++ __u32 stripesize;
++ __u32 sys_chunk_array_size;
++ __u64 chunk_root_generation;
++ __u64 compat_flags;
++ __u64 compat_ro_flags;
++ __u64 incompat_flags;
++ __u16 csum_type;
++ __u8 root_level;
++ __u8 chunk_root_level;
++ __u8 log_root_level;
++ struct btrfs_dev_item dev_item;
++
++ char label[BTRFS_LABEL_SIZE];
++
++ /* future expansion */
++ __u64 reserved[32];
++ __u8 sys_chunk_array[BTRFS_SYSTEM_CHUNK_ARRAY_SIZE];
++} __attribute__ ((__packed__));
++
+ /*
+ * Byte swap functions
+ */
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/e2fsprogs-journal-move.patch b/e2fsprogs-journal-move.patch
deleted file mode 100644
index 7a84711..0000000
--- a/e2fsprogs-journal-move.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Only move ext4's journal for now; I don't want to change this behavior
-for ext3 late in the release process.
-
-Index: e2fsprogs/lib/ext2fs/mkjournal.c
-===================================================================
---- e2fsprogs.orig/lib/ext2fs/mkjournal.c
-+++ e2fsprogs/lib/ext2fs/mkjournal.c
-@@ -332,6 +332,10 @@ static errcode_t write_journal_inode(ext
- es.goal = (fs->super->s_blocks_per_group * group) +
- fs->super->s_first_data_block;
-
-+ /* quick conservative hack: if not ext4, just keep the goal at 0 */
-+ if (!(fs->super->s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS))
-+ es.goal = 0;
-+
- retval = ext2fs_block_iterate2(fs, journal_ino, BLOCK_FLAG_APPEND,
- 0, mkjournal_proc, &es);
- if (es.err) {
-
diff --git a/e2fsprogs.spec b/e2fsprogs.spec
index 1e27288..ae0b046 100644
--- a/e2fsprogs.spec
+++ b/e2fsprogs.spec
@@ -4,7 +4,7 @@
Summary: Utilities for managing the second and third extended (ext2/ext3) filesystems
Name: e2fsprogs
Version: 1.41.3
-Release: 2%{?dist}
+Release: 3%{?dist}
# License based on upstream-modified COPYING file,
# which clearly states "V2" intent.
License: GPLv2
@@ -15,7 +15,7 @@ Source2: blkid_types-wrapper.h
Source3: uuidd.init
Patch1: e2fsprogs-1.38-etcblkid.patch
Patch2: e2fsprogs-1.40.4-sb_feature_check_ignore.patch
-Patch3: e2fsprogs-journal-move.patch
+Patch3: e2fsprogs-1.41.3-blkid-btrfs.patch
Url: http://e2fsprogs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -292,6 +292,10 @@ fi
%dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
%changelog
+* Sat Jan 10 2009 Eric Sandeen <sandeen@redhat.com> 1.41.3-3
+- Remove conservative "don't change journal location" patch for F11
+- Add btrfs recognition to blkid
+
* Mon Oct 03 2008 Eric Sandeen <sandeen@redhat.com> 1.41.3-2
- Bump to revision 2, f10 was behind f9, oops.