linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ratna Manoj" <manoj.br@gmail.com>
To: linux-ext4@vger.kernel.org
Cc: sct@redhat.com
Subject: Understanding ext3
Date: Sat, 11 Nov 2006 16:45:52 +0530	[thread overview]
Message-ID: <7fbb0ada0611110315q68deec5bq58c42c892082ba81@mail.gmail.com> (raw)

---------- Forwarded message ----------
From: Ratna Manoj <manoj.br@gmail.com>
Date: Nov 11, 2006 4:35 PM
Subject: sct@redhat.com
To: linux-ext4@vger.kernel.org


Hi,


int journal_dirty_data(handle_t *handle, struct buffer_head *bh)
{
                        ..................
                        ..................

                         /*
                         * This buffer may be undergoing writeout in commit.  We
                         * can't return from here and let the caller dirty it
                         * again because that can cause the write-out loop in
                         * commit to never terminate.
                         */
                         if (buffer_dirty(bh)) {
                                 get_bh(bh);
                                 spin_unlock(&journal->j_list_lock);
                                 jbd_unlock_bh_state(bh);
                                 need_brelse = 1;
                                 sync_dirty_buffer(bh);
                                 jbd_lock_bh_state(bh);
                                 spin_lock(&journal->j_list_lock);
                                 /* The buffer may become locked again at any
                                    time if it is redirtied */
                         }
                         ..............................
                         ..............................
}


Can any body please explain how returning from the above function
cause write-out loop in commit to never terminate ?

If the current buffer is in the data_sync list of previous commiting
transaction, after returning from the journal_dirty_data,
generic_commit_write will redirty the buffer even though previous
commiting transaction commits the buffer to disk. Correct ?


-Ratna.

                 reply	other threads:[~2006-11-11 11:15 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=7fbb0ada0611110315q68deec5bq58c42c892082ba81@mail.gmail.com \
    --to=manoj.br@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sct@redhat.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 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).