lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120903135756.GI21109@quack.suse.cz>
Date:	Mon, 3 Sep 2012 15:57:56 +0200
From:	Jan Kara <jack@...e.cz>
To:	Kristian Nielsen <knielsen@...elsen-hq.org>
Cc:	Andreas Dilger <adilger.kernel@...ger.ca>,
	linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [ext3/4] PROBLEM: fdatasync not syncing appended data (w/test
 program)

On Mon 03-09-12 10:45:15, Kristian Nielsen wrote:
> It appears that ext3 and ext4 fdatasync() does not fully sync data to
> disk. Specifically, when new data is written at the end (so that the file
> length is increased), not all of the new data is synced by fdatasync().
> 
> It looks as if the problem is when the new data fits in the last allocated
> page for the file - then ext3/4 flushes the new data page to disk, but _not_
> the new metadata with the longer file size.
  Thanks for the detailed analysis. This is indeed a genuine bug. While
fixing some fsync issues I introduced (or better didn't fix) this problem.
The culprit is that we forget to update i_datasync_tid when we change only
inode size. Thus inode is not forced to disk during fdatasync(). I will send
fixes for this in a moment.

								Honza
-- 
Jan Kara <jack@...e.cz>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ