On 08/25/2015 10:06 PM, Liu Bo wrote:
On Tue, Aug 25, 2015 at 01:09:43PM -0400, Josef Bacik wrote:
If we have an fsync at the same time in two seperate subvolumes we could end up
with the tree log pointing at invalid blocks. We need to notice if our writeout
Mind to share more details of the problem?
It's the problem Filipe was trying to solve. Say we fsync() on two
different subvols, one of them will race in and be the one who commits
the log root tree. So process A waits on process B to add its log to
the log root tree and write out its log. If we get an IO error while
writing out the log the log root tree will be pointing to invalid crap,
and we also won't return an error back to userspace. We need to notice
if there was an error, turn on the transaction commit stuff since we've
already updated the the log root tree with our subvol log so we don't
get garbage on the disk, and we need to return an error to process B.
Thanks,
Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html