Re: [rfc][patch 3/4] fs: new truncate sequence
From: Nick Piggin <hidden>
Date: 2009-07-09 07:51:05
Also in:
linux-fsdevel, lkml
On Wed, Jul 08, 2009 at 07:07:17PM +0300, Boaz Harrosh wrote:
On 07/08/2009 03:34 PM, Nick Piggin wrote:quoted
On Wed, Jul 08, 2009 at 06:47:01AM -0400, Christoph Hellwig wrote: Index: linux-2.6/fs/attr.c ===================================================================--- linux-2.6.orig/fs/attr.c +++ linux-2.6/fs/attr.c@@ -112,7 +112,12 @@ int inode_setattr(struct inode * inode, if (ia_valid & ATTR_SIZE && attr->ia_size != i_size_read(inode)) { - int error = vmtruncate(inode, attr->ia_size); + int error; + + if (inode->i_op->new_truncate) + error = simple_setsize(inode, attr->ia_size);I don't understand this branch. If a filesystem has been converted to set "i_op->new_truncate=true" then it must have been converted to intersect ->setattr and has set the i_size (And needs to clear ATTR_SIZE, why?) All other cases of systems not converted, or systems that do not have ->truncate will fall to the "else" part. before the removal of i_op->new_truncate you will need to do something with the systems that do not have ->truncate which will be a .setattr = simple_setattr or something So I don't understand this conditional
inode_setattr *is* our "simple_setattr". -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>