Thread (6 messages) 6 messages, 3 authors, 2014-02-27

Re: [PATCH v6] ext4: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate

From: Theodore Ts'o <tytso@mit.edu>
Date: 2014-02-26 16:48:28
Also in: linux-fsdevel, linux-xfs, lkml

On Mon, Feb 24, 2014 at 10:22:10AM +0900, Namjae Jeon wrote:
quoted
quoted
+	ret = ext4_es_remove_extent(inode, punch_start,
+				    EXT_MAX_BLOCKS - punch_start - 1);
+	if (ret) {
+		up_write(&EXT4_I(inode)->i_data_sem);
+		goto out_stop;
+	}
Doing this at first is probably a bad idea; you should do this at the
end, and then completely invalidate the es cache for that inode.  That
way, the right thing happens if you get an error in the middle
releasing the boxes and shifting the extents:
Okay, I see.
Actually, thinking about this some more, we do want to do this first,
since if we error out, we do need to make sure the extent cache is
flushed.
If there is error in the middle of extent shifting, the hole will
present between the last shifted extent and the extent at which error
happen so this will be consistent state.
IMHO even if there is error in between the shift, filesystem will be
in consistent state.
Am I missing something?
No, I was wrong about that; you're right.  The file will be in an
inconsistent statement, which will probably be highly confusing for
the application, but the file system will be fine.

So I withdraw my complaints.  I'll do a bit more testing, but so far
the patch looks fine to me.  Thanks for your reply and your work!

					- Ted

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help