Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Oct 2016 12:16:08 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-fs@FreeBSD.org
Subject:   [Bug 213507] [msdosfs] [patch]: Prevent occasional directory corruption while extending it to another cluster
Message-ID:  <bug-213507-3630-5ZIlFSXyar@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-213507-3630@https.bugs.freebsd.org/bugzilla/>
References:  <bug-213507-3630@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D213507

--- Comment #7 from Vladislav Movchan <vladislav.movchan@gmail.com> ---
(In reply to Konstantin Belousov from comment #5)
I confirmed your hypothesis - sometimes buffer pages have valid bits set and
sometimes they don't.
Original problem occurs only in cases when valid bits are set, so
vfs_bio_clrbuf() don't zero random data in buffer.

Also I went through history and found that originally buffer data was always
zeroed by call to clrbuf() macro and in base r171522 it was changed to
vfs_bio_clrbuf() as an optimization.

I suppose what I see is just a regression of this optimization and it was n=
ot
noticed since then as "directory extension to another cluster" is a rare
operation.

I attached another patch which restores original behaviour just for the
"directory grows" case.
With this patch I'm no longer able to reproduce this problem.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-213507-3630-5ZIlFSXyar>