All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: Jeremiah Mahler <jmmahler@gmail.com>, linux-kernel@vger.kernel.org
Subject: Re: [BUG, bisect] hang when copying large file to disc
Date: Sat, 31 Jan 2015 21:02:30 -0500	[thread overview]
Message-ID: <20150201020230.GA3070@thunk.org> (raw)
In-Reply-To: <20150131034051.GA1289@hudson.localdomain>

On Fri, Jan 30, 2015 at 07:40:51PM -0800, Jeremiah Mahler wrote:
> 
> If a large file (> 1 GB) is transferred from a USB stick or a mmc
> to an local disc (using ext4), it will proceed normally until it
> has transferred approximately 600 MB.  Then the speed will drop off
> to zero and the terminal performing the operation will usually
> hang.  And sometimes other terminals will hang as well.  A reboot
> is required to get the system working again.
> 
>   mount /dev/sdb1 /mnt
>   pv /mnt/large_file > large_file_out
>   (... ~600 MB ... hang)
> 
> I have performed a bisect and found that commit ef39794651347 introduced
> the bug.  This commit is present in the latest -next 20150130.

Thanks for the bug report.  I was able to reproduce the problem, and
found the problem.  Unfortunately I accidentally introduce this in my
most recent patchset.  I'll fix it up, but here is the patch until I
get the a new version pushed out.

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 82c2984..0046861 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1192,9 +1192,9 @@ void __mark_inode_dirty(struct inode *inode, int flags)
 
 		trace_writeback_dirty_inode(inode, flags);
 	}
-	dirtytime = flags & I_DIRTY_TIME;
 	if (flags & I_DIRTY_INODE)
 		flags &= ~I_DIRTY_TIME;
+	dirtytime = flags & I_DIRTY_TIME;
 
 	/*
 	 * Paired with smp_mb() in __writeback_single_inode() for the

	   	       		   			      	  - Ted

  reply	other threads:[~2015-02-01  2:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-31  3:40 [BUG, bisect] hang when copying large file to disc Jeremiah Mahler
2015-02-01  2:02 ` Theodore Ts'o [this message]
2015-02-01 19:30   ` Jeremiah Mahler

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=20150201020230.GA3070@thunk.org \
    --to=tytso@mit.edu \
    --cc=jmmahler@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.