From: Konstantin Besch <forward@zagon.com>
To: reiserfs-list@namesys.com
Subject: Re: BUG in writeback mode - from data journaling patch
Date: Mon, 30 Aug 2004 12:32:32 -0400 [thread overview]
Message-ID: <200408301232.32560.forward@zagon.com> (raw)
In-Reply-To: <200408301803.57727.Dieter.Nuetzel@hamburg.de>
The notification about this bug been there for a while - seems
like Vijayan spent some time hunting it down ( I know he did ) .
Doesn't seem like a lot of time from the developers to verify validity of the
bug/fix introduced , unless Chris missed on the information and didn't notice
it.
On the other hand, since the software is GPL we might not even know the
answer , not that we paid for ReiserFS with our credit cards or anything :)
--K
just my two cents - since I would like to know if there is an answer at all to
this question , too .
On Monday 30 August 2004 12:03 pm, Dieter Nützel wrote:
> Am Donnerstag, 19. August 2004 20:32 schrieb Vijayan Prabhakaran:
> > Dear Chris Mason,
> >
> > I found a bug in writeback mode. In writeback mode, when a file block
> > was overwritten, the file's stat information was not getting updated.
> > For more details on this, please refer to my previous mail on the same
> > topic.
> >
> > I tracked down the bug to the data journaling patch.
> >
> > Bug description:
> > ----------------
> >
> > In file inode.c, there is a function called __commit_write(). In that
> > function, there is a "if" condition:
> >
> > if (reiserfs_data_ordered(inode->i_sb)) {
> > lock_kernel();
> > add_to_flushlist(inode, bh);
> > /* if we don't update the inode trans information,
> > * an fsync(fd) might not catch these data blocks
> > */
> >
> > reiserfs_update_inode_transaction(inode);
> > unlock_kernel();
> > } else {
> > buffer_insert_inode_data_queue(bh, inode);
> > }
> >
> > If you look at the condition, for ordered mode, the inode transaction
> > information gets updated by the call
> > reiserfs_update_inode_transaction(). But, for writeback mode, this is
> > not done.
> >
> > Since the inode transaction information is not updated, later in
> > function __commit_trans_jl() (which is in file journal.c), the
> > following "if" condition fails.
> >
> > flush_commit_only:
> > if (journal_list_still_alive(inode->i_sb, id)) {
> > ...
> > }
> >
> > Because of this failure, the file's stat data, even though available
> > in the transaction list, did not get written to the disk.
> >
> > Bug fix:
> > --------
> >
> > If we add reiserfs_update_inode_transaction() call in __commit_write()
> > for the writeback mode, then it works fine. That is,
> >
> > if (reiserfs_data_ordered(inode->i_sb)) {
> > lock_kernel();
> > add_to_flushlist(inode, bh);
> > /* if we don't update the inode trans information,
> > * an fsync(fd) might not catch these data blocks
> > */
> >
> > reiserfs_update_inode_transaction(inode);
> > unlock_kernel();
> > } else {
> > reiserfs_update_inode_transaction(inode);
> > buffer_insert_inode_data_queue(bh, inode);
> > }
> >
> > Could you please verify this fix and if you think it is appropriate,
> > can you please add this to your patch.
> >
> > I appreciate your help.
>
> Chris,
>
> any thoughts on this?
>
> -Dieter
next prev parent reply other threads:[~2004-08-30 16:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-19 18:32 BUG in writeback mode - from data journaling patch Vijayan Prabhakaran
2004-08-30 16:03 ` Dieter Nützel
2004-08-30 16:32 ` Konstantin Besch [this message]
2004-08-30 16:42 ` Chris Mason
2004-08-30 16:50 ` Vijayan Prabhakaran
[not found] ` <2f9ccaae04083010074d49a0a0@mail.gmail.com>
2004-08-30 17:12 ` Vijayan Prabhakaran
2004-08-30 17:09 ` Vijayan Prabhakaran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200408301232.32560.forward@zagon.com \
--to=forward@zagon.com \
--cc=reiserfs-list@namesys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.