check ATTR_SIZE contraints in inode_change_ok
[deliverable/linux.git] / fs / ufs / truncate.c
index 085e11623b7b9ba3ef2e63143c64d654e39d7be4..34d5cb1353204ea8a2a7cf348750d66f4519613d 100644 (file)
@@ -500,11 +500,6 @@ out:
        return err;
 }
 
-/*
- * TODO:
- *     - truncate case should use proper ordering instead of using
- *       simple_setsize
- */
 int ufs_setattr(struct dentry *dentry, struct iattr *attr)
 {
        struct inode *inode = dentry->d_inode;
@@ -518,9 +513,9 @@ int ufs_setattr(struct dentry *dentry, struct iattr *attr)
        if (ia_valid & ATTR_SIZE && attr->ia_size != inode->i_size) {
                loff_t old_i_size = inode->i_size;
 
-               error = simple_setsize(inode, attr->ia_size);
-               if (error)
-                       return error;
+               /* XXX(truncate): truncate_setsize should be called last */
+               truncate_setsize(inode, attr->ia_size);
+
                error = ufs_truncate(inode, old_i_size);
                if (error)
                        return error;
This page took 0.02983 seconds and 5 git commands to generate.