On Wed, Jul 08, 2009 at 07:07:17PM +0300, Boaz Harrosh wrote: > On 07/08/2009 03:34 PM, Nick Piggin wrote: > > 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 from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html