]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - mm/shmem.c
fix truncate inode time modification breakage
[net-next-2.6.git] / mm / shmem.c
index 7e5030ae18ffd07ab19f070939f357fff3816ab9..f65f84062db554ed2b3e9452cc787f8ab4f1b0d3 100644 (file)
@@ -764,10 +764,11 @@ done2:
 static int shmem_notify_change(struct dentry *dentry, struct iattr *attr)
 {
        struct inode *inode = dentry->d_inode;
+       loff_t newsize = attr->ia_size;
        int error;
 
-       if (S_ISREG(inode->i_mode) && (attr->ia_valid & ATTR_SIZE)) {
-               loff_t newsize = attr->ia_size;
+       if (S_ISREG(inode->i_mode) && (attr->ia_valid & ATTR_SIZE)
+                                       && newsize != inode->i_size) {
                struct page *page = NULL;
 
                if (newsize < inode->i_size) {