Commit 70200d3d authored by Warren Turkal's avatar Warren Turkal Committed by James Toy

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: default avatarWarren Turkal <wt@penguintechs.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 86cde45c
...@@ -94,7 +94,7 @@ struct hfsplus_vh { ...@@ -94,7 +94,7 @@ struct hfsplus_vh {
__be16 version; __be16 version;
__be32 attributes; __be32 attributes;
__be32 last_mount_vers; __be32 last_mount_vers;
u32 reserved; __be32 journal_info_block;
__be32 create_date; __be32 create_date;
__be32 modify_date; __be32 modify_date;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment