* [PATCH v2 00/15] hfsplus: introduce journal replay functionality
@ 2014-01-24 15:25 Vyacheslav Dubeyko
2014-01-27 4:22 ` Hin-Tak Leung
2014-02-05 23:48 ` Andrew Morton
0 siblings, 2 replies; 10+ messages in thread
From: Vyacheslav Dubeyko @ 2014-01-24 15:25 UTC (permalink / raw)
To: Linux FS devel list
Cc: Al Viro, ChristophHellwig, Hin-Tak Leung, Andrew Morton
Hi,
This second version of patchset that implements journal replay
functionality in HFS+ file system driver.
v1->v2
* Fix error messages incorrectness (Hin-Tak Leung)
* Fix issue with remount "mount -o remount,rw <device> <folder>"
* Rework "force" and "norecovery" mount options support (Hin-Tak Leung)
Technical Note TN1150:
"The purpose of the journal is to ensure that when a group of
related changes are being made, that either all of those changes
are actually made, or none of them are made. This is done by
gathering up all of the changes, and storing them in a separate
place (in the journal). Once the journal copy of the changes is
completely written to disk, the changes can actually be written
to their normal locations on disk. If a failure happens at that
time, the changes can simply be copied from the journal to their
normal locations. If a failure happens when the changes are being
written to the journal, but before they are marked complete, then
all of those changes are ignored."
"A group of related changes is called a transaction. When all of
the changes of a transaction have been written to their normal
locations on disk, that transaction has been committed, and is
removed from the journal. The journal may contain several
transactions. Copying changes from all transactions to their
normal locations on disk is called replaying the journal."
"In order to replay the journal, an implementation just loops
over the transactions, copying each individual block in the
transaction from the journal to its proper location on the
volume. Once those blocks have been flushed to the media
(not just the driver!), it may update the journal header to
remove the transactions."
"Here are the steps to replay the journal:
1. Read the volume header into variable vhb. The volume may
have an HFS wrapper; if so, you will need to use it to
determine the location of the volume header.
2. Test the kHFSVolumeJournaledBit in the attributes field of
the volume header. If it is not set, there is no journal
to replay, and you are done.
3. Read the journal info block from the allocation block number
vhb.journalInfoBlock, into variable jib.
4. If kJIJournalNeedsInitMask is set in jib.flags, the journal
was never initialized, so there is no journal to replay.
5. Verify that kJIJournalInFSMask is set and kJIJournalOnOtherDeviceMask
is clear in jib.flags.
6. Read the journal header at jib.offset bytes from the start
of the volume, and place it in variable jhdr.
7. If jhdr.start equals jhdr.end, the journal does not have
any transactions, so there is nothing to replay.
8. Set the current offset in the journal (typically a local
variable) to the start of the journal buffer, jhdr.start.
9. While jhdr.start does not equal jhdr.end, perform the
following steps:
1. Read a block list header of jhdr.blhdr_size bytes from
the current offset in the journal into variable blhdr.
2. For each block in bhdr.binfo[1] to bhdr.binfo[blhdr.num_blocks],
inclusive, copy bsize bytes from the current offset in
the journal to sector bnum on the volume (to byte offset
bnum*jdhr.jhdr_size). Remember that jhdr_size is the
size of a sector, in bytes.
3. If bhdr.binfo[0].next is zero, you have completed the
last block list of the current transaction; set jhdr.start
to the current offset in the journal."
It was reworked concept of "force" mount option. It is used to force
write access to volumes that are marked as locked, only. This option
doesn't work for journaled volumes with non-empty journal. HFS+ drive
tries to replay journal and ignores forcing write access in the case of
journal replay failure. It is possible to access HFS+ volume in
read-only mode only for such case. The "force" option is ignored
for the case of "norecovery" option request also.
With the best regards,
Vyacheslav Dubeyko.
---
Documentation/filesystems/hfsplus.txt | 16 +-
fs/hfsplus/Makefile | 3 +-
fs/hfsplus/hfsplus_fs.h | 33 +-
fs/hfsplus/hfsplus_raw.h | 53 +-
fs/hfsplus/journal.c | 1215 +++++++++++++++++++++++++++++++++
fs/hfsplus/options.c | 17 +-
fs/hfsplus/part_tbl.c | 4 +-
fs/hfsplus/super.c | 105 ++-
fs/hfsplus/wrapper.c | 28 +-
9 files changed, 1435 insertions(+), 39 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-01-24 15:25 [PATCH v2 00/15] hfsplus: introduce journal replay functionality Vyacheslav Dubeyko
@ 2014-01-27 4:22 ` Hin-Tak Leung
2014-01-27 13:25 ` Vyacheslav Dubeyko
2014-02-05 23:48 ` Andrew Morton
1 sibling, 1 reply; 10+ messages in thread
From: Hin-Tak Leung @ 2014-01-27 4:22 UTC (permalink / raw)
To: Linux FS devel list, Vyacheslav Dubeyko
Cc: Al Viro, ChristophHellwig, Andrew Morton
--------------------------------------------
On Fri, 24/1/14, Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
Subject: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
To: "Linux FS devel list" <linux-fsdevel@vger.kernel.org>
Cc: "Al Viro" <viro@zeniv.linux.org.uk>, "ChristophHellwig" <hch@infradead.org>, "Hin-Tak Leung" <htl10@users.sourceforge.net>, "Andrew Morton" <akpm@linux-foundation.org>
Date: Friday, 24 January, 2014, 15:25
Hi,
This second version of patchset that implements journal
replay
functionality in HFS+ file system driver.
v1->v2
* Fix error messages incorrectness (Hin-Tak Leung)
* Fix issue with remount "mount -o remount,rw <device>
<folder>"
* Rework "force" and "norecovery" mount options support
(Hin-Tak Leung)
Technical Note TN1150:
"The purpose of the journal is to ensure that when a group
of
related changes are being made, that either all of those
changes
are actually made, or none of them are made. This is done
by
gathering up all of the changes, and storing them in a
separate
place (in the journal). Once the journal copy of the
changes is
completely written to disk, the changes can actually be
written
to their normal locations on disk. If a failure happens at
that
time, the changes can simply be copied from the journal to
their
normal locations. If a failure happens when the changes are
being
written to the journal, but before they are marked
complete, then
all of those changes are ignored."
"A group of related changes is called a transaction. When
all of
the changes of a transaction have been written to their
normal
locations on disk, that transaction has been committed, and
is
removed from the journal. The journal may contain several
transactions. Copying changes from all transactions to
their
normal locations on disk is called replaying the journal."
"In order to replay the journal, an implementation just
loops
over the transactions, copying each individual block in
the
transaction from the journal to its proper location on the
volume. Once those blocks have been flushed to the media
(not just the driver!), it may update the journal header
to
remove the transactions."
"Here are the steps to replay the journal:
1. Read the volume header into variable vhb. The
volume may
have an HFS wrapper; if so, you
will need to use it to
determine the location of the
volume header.
2. Test the kHFSVolumeJournaledBit in the attributes
field of
the volume header. If it is not
set, there is no journal
to replay, and you are done.
3. Read the journal info block from the allocation
block number
vhb.journalInfoBlock, into variable
jib.
4. If kJIJournalNeedsInitMask is set in jib.flags,
the journal
was never initialized, so there is
no journal to replay.
5. Verify that kJIJournalInFSMask is set and
kJIJournalOnOtherDeviceMask
is clear in jib.flags.
6. Read the journal header at jib.offset bytes from
the start
of the volume, and place it in
variable jhdr.
7. If jhdr.start equals jhdr.end, the journal does
not have
any transactions, so there is
nothing to replay.
8. Set the current offset in the journal (typically a
local
variable) to the start of the
journal buffer, jhdr.start.
9. While jhdr.start does not equal jhdr.end, perform
the
following steps:
1. Read a block list header
of jhdr.blhdr_size bytes from
the current offset in the
journal into variable blhdr.
2. For each block in
bhdr.binfo[1] to bhdr.binfo[blhdr.num_blocks],
inclusive, copy bsize
bytes from the current offset in
the journal to sector
bnum on the volume (to byte offset
bnum*jdhr.jhdr_size).
Remember that jhdr_size is the
size of a sector, in
bytes.
3. If bhdr.binfo[0].next is
zero, you have completed the
last block list of the
current transaction; set jhdr.start
to the current offset in
the journal."
It was reworked concept of "force" mount option. It is used
to force
write access to volumes that are marked as locked, only.
This option
doesn't work for journaled volumes with non-empty journal.
HFS+ drive
tries to replay journal and ignores forcing write access in
the case of
journal replay failure. It is possible to access HFS+ volume
in
read-only mode only for such case. The "force" option is
ignored
for the case of "norecovery" option request also.
With the best regards,
Vyacheslav Dubeyko.
---
Documentation/filesystems/hfsplus.txt | 16
+-
fs/hfsplus/Makefile
| 3 +-
fs/hfsplus/hfsplus_fs.h
| 33 +-
fs/hfsplus/hfsplus_raw.h
| 53 +-
fs/hfsplus/journal.c
| 1215
+++++++++++++++++++++++++++++++++
fs/hfsplus/options.c
| 17 +-
fs/hfsplus/part_tbl.c
| 4 +-
fs/hfsplus/super.c
| 105 ++-
fs/hfsplus/wrapper.c
| 28 +-
9 files changed, 1435 insertions(+), 39 deletions(-)
--
1.7.9.5
Thanks, Vyacheslav, for presisting on this.
I'll give the new patchset a try at somepoint.
About inter-operability, I thought of one idea - it would be useful to
wrap genuine OS X code around some kind of fuse framework to run
under linux? I don't know how difficult it is, but at some point I think
besides the specification (tn1150, we need to look at the actual
implementation for inter-operability anyhow.
The fs code in the OS X kernel is under the xnu component, in the bsd layer,
I seem to remember.
Another left-over issue I forgot to mention again: some disk images
(I came across one, one of the xcode devtool download from Apple - so it is
"official", not some random 3rd party who did broken things) have
the secondary header at a slightly different offset from the end. The details
I don't have in hand but I believe I posted the details publicly at some stage -
possibly at the redhat bugzilla(!).
Hin-Tak
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-01-27 4:22 ` Hin-Tak Leung
@ 2014-01-27 13:25 ` Vyacheslav Dubeyko
2014-02-05 13:16 ` Hin-Tak Leung
0 siblings, 1 reply; 10+ messages in thread
From: Vyacheslav Dubeyko @ 2014-01-27 13:25 UTC (permalink / raw)
To: htl10@users.sourceforge.net
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Andrew Morton
Hi Hin-Tak,
> On 27 янв. 2014 г., at 8:22, Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
>
> About inter-operability, I thought of one idea - it would be useful to
> wrap genuine OS X code around some kind of fuse framework to run
> under linux? I don't know how difficult it is, but at some point I think
> besides the specification (tn1150, we need to look at the actual
> implementation for inter-operability anyhow.
I don't think that it makes sense. First of all, it can be really time-consuming task. From another point of view, it will be really slow solution. And I don't think that it will be simple to port this code base from one ideology to another. Moreover, it is not interesting task for me personally. :)
>
> The fs code in the OS X kernel is under the xnu component, in the bsd layer,
> I seem to remember.
>
> Another left-over issue I forgot to mention again: some disk images
> (I came across one, one of the xcode devtool download from Apple - so it is
> "official", not some random 3rd party who did broken things) have
> the secondary header at a slightly different offset from the end. The details
> I don't have in hand but I believe I posted the details publicly at some stage -
> possibly at the redhat bugzilla(!).
>
As I remember correctly, we had discussion about this issue. I tried to reproduce such situation but without any success. Every volume is created by mkfs utility. So, if it is impossible to create volume with such anomalous layout then it is a volume corruption. Could you share the way of creation such HFS+ volume?
Thanks,
Vyacheslav Dubeyko.
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-01-27 13:25 ` Vyacheslav Dubeyko
@ 2014-02-05 13:16 ` Hin-Tak Leung
0 siblings, 0 replies; 10+ messages in thread
From: Hin-Tak Leung @ 2014-02-05 13:16 UTC (permalink / raw)
To: Vyacheslav Dubeyko
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Andrew Morton
--------------------------------------------
On Mon, 27/1/14, Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
Subject: Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
To: "htl10@users.sourceforge.net" <htl10@users.sourceforge.net>
Cc: "Linux FS devel list" <linux-fsdevel@vger.kernel.org>, "Al Viro" <viro@zeniv.linux.org.uk>, "ChristophHellwig" <hch@infradead.org>, "Andrew Morton" <akpm@linux-foundation.org>
Date: Monday, 27 January, 2014, 13:25
Hi Hin-Tak,
> On 27 янв. 2014 г., at 8:22, Hin-Tak Leung <htl10@users.sourceforge.net>
wrote:
>
> About inter-operability, I thought of one idea - it
would be useful to
> wrap genuine OS X code around some kind of fuse
framework to run
> under linux? I don't know how difficult it is, but at
some point I think
> besides the specification (tn1150, we need to look at
the actual
> implementation for inter-operability anyhow.
I don't think that it makes sense. First of all, it can be
really time-consuming task. From another point of view, it
will be really slow solution. And I don't think that it will
be simple to port this code base from one ideology to
another. Moreover, it is not interesting task for me
personally. :)
>
> The fs code in the OS X kernel is under the xnu
component, in the bsd layer,
> I seem to remember.
>
> Another left-over issue I forgot to mention again: some
disk images
> (I came across one, one of the xcode devtool download
from Apple - so it is
> "official", not some random 3rd party who did broken
things) have
> the secondary header at a slightly different offset
from the end. The details
> I don't have in hand but I believe I posted the details
publicly at some stage -
> possibly at the redhat bugzilla(!).
>
As I remember correctly, we had discussion about this issue.
I tried to reproduce such situation but without any success.
Every volume is created by mkfs utility. So, if it is
impossible to create volume with such anomalous layout then
it is a volume corruption. Could you share the way of
creation such HFS+ volume?
Thanks,
Vyacheslav Dubeyko.
Hi Vyacheslav,
About the fuse-based HFS+ project - I agree it will be time-consuming,
and yes, it is probably going to be slow; but there is no better option
in terms of compatibility if you use genuine apple code (or part thereof)!
At least, the apple code is worth some reading - and it being under
an open license, there is no reason not to keep it in mind as a possible
source of reference.
The context and details of the slightly off secondary volume header
is captured in the thread:
http://permalink.gmane.org/gmane.linux.file-systems/66405
so I shall not repeat. It is useful to remind myself details I have forgotten!
Hin-Tak
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-01-24 15:25 [PATCH v2 00/15] hfsplus: introduce journal replay functionality Vyacheslav Dubeyko
2014-01-27 4:22 ` Hin-Tak Leung
@ 2014-02-05 23:48 ` Andrew Morton
2014-02-06 6:21 ` Vyacheslav Dubeyko
1 sibling, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2014-02-05 23:48 UTC (permalink / raw)
To: Vyacheslav Dubeyko
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Hin-Tak Leung
On Fri, 24 Jan 2014 19:25:18 +0400 Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
> This second version of patchset that implements journal replay
> functionality in HFS+ file system driver.
The series introduces a lot of build glitches on i386 (and other 32-bit
builds)
- tons of printk mismatch warnings
- unresolvable references to __udivdi3 and __umoddi3 (need to use
do_div() or similar).
- several bisection holes:
- with 4 patches applied, error: implicit declaration of function 'JHDR_SIZE'
- with three patches applied, warning: 'hfsplus_create_journal' used but never defined
and probably others.
I'll drop the series for now. Please, find an i386 compiler and ensure
that we get a clean build at every point of the patch series.
To find the __udivdi3 thing I do something like
make M=fs/hfsplus
grep __udivdi3 fs/hfsplus/*.o
then for the offending .o file
make fs/hfsplus/foo.s (or foo.lst)
then poke around in the assembly code to locate the offending function.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-02-05 23:48 ` Andrew Morton
@ 2014-02-06 6:21 ` Vyacheslav Dubeyko
2014-02-07 6:05 ` Vyacheslav Dubeyko
0 siblings, 1 reply; 10+ messages in thread
From: Vyacheslav Dubeyko @ 2014-02-06 6:21 UTC (permalink / raw)
To: Andrew Morton
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Hin-Tak Leung
On Wed, 2014-02-05 at 15:48 -0800, Andrew Morton wrote:
> On Fri, 24 Jan 2014 19:25:18 +0400 Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
>
> > This second version of patchset that implements journal replay
> > functionality in HFS+ file system driver.
>
> The series introduces a lot of build glitches on i386 (and other 32-bit
> builds)
>
> - tons of printk mismatch warnings
>
> - unresolvable references to __udivdi3 and __umoddi3 (need to use
> do_div() or similar).
>
> - several bisection holes:
>
> - with 4 patches applied, error: implicit declaration of function 'JHDR_SIZE'
>
> - with three patches applied, warning: 'hfsplus_create_journal' used but never defined
>
> and probably others.
>
> I'll drop the series for now. Please, find an i386 compiler and ensure
> that we get a clean build at every point of the patch series.
>
>
> To find the __udivdi3 thing I do something like
>
> make M=fs/hfsplus
> grep __udivdi3 fs/hfsplus/*.o
>
> then for the offending .o file
>
> make fs/hfsplus/foo.s (or foo.lst)
>
> then poke around in the assembly code to locate the offending function.
Ok. Thank you. I'll check patchset building on i386 platform and I'll
fix all found errors.
Thanks,
Vyacheslav Dubeyko.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-02-06 6:21 ` Vyacheslav Dubeyko
@ 2014-02-07 6:05 ` Vyacheslav Dubeyko
2014-02-07 6:23 ` Andrew Morton
2014-02-11 7:29 ` Hin-Tak Leung
0 siblings, 2 replies; 10+ messages in thread
From: Vyacheslav Dubeyko @ 2014-02-07 6:05 UTC (permalink / raw)
To: Andrew Morton
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Hin-Tak Leung
Hi Andrew,
On Thu, 2014-02-06 at 10:21 +0400, Vyacheslav Dubeyko wrote:
> On Wed, 2014-02-05 at 15:48 -0800, Andrew Morton wrote:
> > On Fri, 24 Jan 2014 19:25:18 +0400 Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
> >
> > > This second version of patchset that implements journal replay
> > > functionality in HFS+ file system driver.
> >
> > The series introduces a lot of build glitches on i386 (and other 32-bit
> > builds)
> >
> > - tons of printk mismatch warnings
> >
> > - unresolvable references to __udivdi3 and __umoddi3 (need to use
> > do_div() or similar).
> >
> > - several bisection holes:
> >
> > - with 4 patches applied, error: implicit declaration of function 'JHDR_SIZE'
> >
> > - with three patches applied, warning: 'hfsplus_create_journal' used but never defined
> >
I've reproduced (1) printk mismatch warnings; and (2) unresolvable
references to __udivdi3 and __umoddi3 build issues. But I am unable to
reproduce the issue with JHDR_SIZE and hfsplus_create_journal. And I
assume that I misunderstand something. This declarations live inside of
journal.c file only. And I add journal.c file in Makefile in
0015-hfsplus-integrate-journal-replay-support-into-driver.patch only.
So, how do you achieve build issues with JHDR_SIZE and
hfsplus_create_journal? Could you share your way? Maybe do you use some
special compilation options or additional tools during build?
Thanks,
Vyacheslav Dubeyko.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-02-07 6:05 ` Vyacheslav Dubeyko
@ 2014-02-07 6:23 ` Andrew Morton
2014-02-11 7:29 ` Hin-Tak Leung
1 sibling, 0 replies; 10+ messages in thread
From: Andrew Morton @ 2014-02-07 6:23 UTC (permalink / raw)
To: Vyacheslav Dubeyko
Cc: Linux FS devel list, Al Viro, ChristophHellwig, Hin-Tak Leung
On Fri, 07 Feb 2014 10:05:44 +0400 Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
> Hi Andrew,
>
> On Thu, 2014-02-06 at 10:21 +0400, Vyacheslav Dubeyko wrote:
> > On Wed, 2014-02-05 at 15:48 -0800, Andrew Morton wrote:
> > > On Fri, 24 Jan 2014 19:25:18 +0400 Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
> > >
> > > > This second version of patchset that implements journal replay
> > > > functionality in HFS+ file system driver.
> > >
> > > The series introduces a lot of build glitches on i386 (and other 32-bit
> > > builds)
> > >
> > > - tons of printk mismatch warnings
> > >
> > > - unresolvable references to __udivdi3 and __umoddi3 (need to use
> > > do_div() or similar).
> > >
> > > - several bisection holes:
> > >
> > > - with 4 patches applied, error: implicit declaration of function 'JHDR_SIZE'
> > >
> > > - with three patches applied, warning: 'hfsplus_create_journal' used but never defined
> > >
>
> I've reproduced (1) printk mismatch warnings; and (2) unresolvable
> references to __udivdi3 and __umoddi3 build issues. But I am unable to
> reproduce the issue with JHDR_SIZE and hfsplus_create_journal. And I
> assume that I misunderstand something. This declarations live inside of
> journal.c file only. And I add journal.c file in Makefile in
> 0015-hfsplus-integrate-journal-replay-support-into-driver.patch only.
> So, how do you achieve build issues with JHDR_SIZE and
> hfsplus_create_journal? Could you share your way? Maybe do you use some
> special compilation options or additional tools during build?
Nope, just i386 "make allmodconfig ; make fs/hfsplus/journal.o".
Apply these:
hfsplus-add-necessary-declarations-for-journal-replay
hfsplus-rework-hfsplus_submit_bio-method
hfsplus-implement-init-destroy-journal-object-functionality
hfsplus-implement-functionality-for-hfsplus_journal_need_init-flag
get this:
fs/hfsplus/journal.c: In function 'hfsplus_create_journal':
fs/hfsplus/journal.c:186: error: implicit declaration of function 'JHDR_SIZE'
fs/hfsplus/journal.c: In function 'hfsplus_init_journal':
fs/hfsplus/journal.c:244: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'sector_t'
fs/hfsplus/journal.c:259: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'sector_t'
fs/hfsplus/journal.c:264: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'sector_t'
fs/hfsplus/journal.c:282: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'sector_t'
fs/hfsplus/journal.c:290: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'sector_t'
z:/usr/src/25> grep JHDR_SIZE include/linux/*.h
z:/usr/src/25> grep JHDR_SIZE fs/hfsplus/*.[ch]
fs/hfsplus/journal.c:#define HFSPLUS_DEFAULT_JHDR_SIZE (4 * 1024)
fs/hfsplus/journal.c: jnl->jh->jhdr_size = cpu_to_le32(HFSPLUS_DEFAULT_JHDR_SIZE);
fs/hfsplus/journal.c: jnl->jh->start = cpu_to_le64(JHDR_SIZE(jnl->jh));
fs/hfsplus/journal.c: jnl->jh->end = cpu_to_le64(JHDR_SIZE(jnl->jh));
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-02-07 6:05 ` Vyacheslav Dubeyko
2014-02-07 6:23 ` Andrew Morton
@ 2014-02-11 7:29 ` Hin-Tak Leung
2014-02-11 8:02 ` Vyacheslav Dubeyko
1 sibling, 1 reply; 10+ messages in thread
From: Hin-Tak Leung @ 2014-02-11 7:29 UTC (permalink / raw)
To: Andrew Morton, Vyacheslav Dubeyko
Cc: Linux FS devel list, Al Viro, ChristophHellwig
--------------------------------------------
On Fri, 7/2/14, Vyacheslav Dubeyko <slava@dubeyko.com> wrote:
Subject: Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
To: "Andrew Morton" <akpm@linux-foundation.org>
Cc: "Linux FS devel list" <linux-fsdevel@vger.kernel.org>, "Al Viro" <viro@zeniv.linux.org.uk>, "ChristophHellwig" <hch@infradead.org>, "Hin-Tak Leung" <htl10@users.sourceforge.net>
Date: Friday, 7 February, 2014, 6:05
Hi Andrew,
On Thu, 2014-02-06 at 10:21 +0400, Vyacheslav Dubeyko
wrote:
> On Wed, 2014-02-05 at 15:48 -0800, Andrew Morton
wrote:
> > On Fri, 24 Jan 2014 19:25:18 +0400 Vyacheslav
Dubeyko <slava@dubeyko.com>
wrote:
> >
> > > This second version of patchset that
implements journal replay
> > > functionality in HFS+ file system driver.
> >
> > The series introduces a lot of build glitches on
i386 (and other 32-bit
> > builds)
> >
> > - tons of printk mismatch warnings
> >
> > - unresolvable references to __udivdi3 and
__umoddi3 (need to use
> > do_div() or similar).
> >
> > - several bisection holes:
> >
> > - with 4 patches applied, error:
implicit declaration of function 'JHDR_SIZE'
> >
> > - with three patches applied,
warning: 'hfsplus_create_journal' used but never defined
> >
I've reproduced (1) printk mismatch warnings; and (2)
unresolvable
references to __udivdi3 and __umoddi3 build issues. But I am
unable to
reproduce the issue with JHDR_SIZE and
hfsplus_create_journal. And I
assume that I misunderstand something. This declarations
live inside of
journal.c file only. And I add journal.c file in Makefile
in
0015-hfsplus-integrate-journal-replay-support-into-driver.patch
only.
So, how do you achieve build issues with JHDR_SIZE and
hfsplus_create_journal? Could you share your way? Maybe do
you use some
special compilation options or additional tools during
build?
Thanks,
Vyacheslav Dubeyko.
Hi Vyacheslav,
I came across this patch (http://marc.info/?l=linux-fsdevel&m=138446099500610&w=2)
about an earlier __divdi3 issue - the analysis is quite thorough and I think relevant
for the __udivdi3 / __umoddi3 issues. Hope this helps.
Hin-Tak
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 00/15] hfsplus: introduce journal replay functionality
2014-02-11 7:29 ` Hin-Tak Leung
@ 2014-02-11 8:02 ` Vyacheslav Dubeyko
0 siblings, 0 replies; 10+ messages in thread
From: Vyacheslav Dubeyko @ 2014-02-11 8:02 UTC (permalink / raw)
To: htl10; +Cc: Andrew Morton, Linux FS devel list, Al Viro, ChristophHellwig
Hi Hin-Tak,
On Tue, 2014-02-11 at 07:29 +0000, Hin-Tak Leung wrote:
>
> Hi Vyacheslav,
>
> I came across this patch (http://marc.info/?l=linux-fsdevel&m=138446099500610&w=2)
> about an earlier __divdi3 issue - the analysis is quite thorough and I think relevant
> for the __udivdi3 / __umoddi3 issues. Hope this helps.
>
Thank you. I have fixed these issues. I don't fix all warnings yet. I am
simply preparing patch sequence without any warning. Unfortunately, I
haven't enough time for it.
Thanks,
Vyacheslav Dubeyko.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-02-11 8:30 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-24 15:25 [PATCH v2 00/15] hfsplus: introduce journal replay functionality Vyacheslav Dubeyko
2014-01-27 4:22 ` Hin-Tak Leung
2014-01-27 13:25 ` Vyacheslav Dubeyko
2014-02-05 13:16 ` Hin-Tak Leung
2014-02-05 23:48 ` Andrew Morton
2014-02-06 6:21 ` Vyacheslav Dubeyko
2014-02-07 6:05 ` Vyacheslav Dubeyko
2014-02-07 6:23 ` Andrew Morton
2014-02-11 7:29 ` Hin-Tak Leung
2014-02-11 8:02 ` Vyacheslav Dubeyko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).