[patch 1/2] hfsplus: identify journal info block in volume header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Warren Turkal <wt@xxxxxxxxxxxxxxxx>

This is a patchset to change the way that the HFS+ filesystem detects
whether a volume has a journal or not.

The code currently mounts an HFS+ volume read-only by default when a
journal is detected.  One can force a read/write mount by giving the
"force" mount option.  The current code has this behavior since there is
no support for the HFS+ journal.

My problem is that the detection of the journal could be better.  The
current code tests the attribute bit in the volume header that indicates
there is a journal.  If that bit is set, the code assumes that there is a
journal.

Unfortunately, this is not enough to really determine if there is a
journal or not.  When that bit is set, one must also examine the journal
info block field of the volume header.  If this field is 0, there is no
journal, and the volume can be mounted read/write.


This patch:

The HFS+ support in the kernel currently will mount an HFS+ volume
read-only if the volume header has the attribute bit set that indicates
there is a journal.  The kernel does this because there is no support for
a journalled HFS+ volume.

The problem is that this is only half of what needs to be checked to see
if there really is a journal.  There is also an entry in the volume header
that tells you where to find the journal info block.  In the kernel
version of the kernel, this 4 byte block is labeled reserved.  This patch
identifies the journal info block in the header.

Signed-off-by: Warren Turkal <wt@xxxxxxxxxxxxxxxx>
Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 fs/hfsplus/hfsplus_raw.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/hfsplus/hfsplus_raw.h~hfsplus-identify-journal-info-block-in-volume-header fs/hfsplus/hfsplus_raw.h
--- a/fs/hfsplus/hfsplus_raw.h~hfsplus-identify-journal-info-block-in-volume-header
+++ a/fs/hfsplus/hfsplus_raw.h
@@ -94,7 +94,7 @@ struct hfsplus_vh {
 	__be16 version;
 	__be32 attributes;
 	__be32 last_mount_vers;
-	u32 reserved;
+	__be32 journal_info_block;
 
 	__be32 create_date;
 	__be32 modify_date;
_
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux