anon_inode: set S_IFREG on the anon_inode
[safe/jmp/linux-2.6] / fs / reiserfs / inode.c
index d1da94b..0f22fda 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/smp_lock.h>
 #include <linux/pagemap.h>
 #include <linux/highmem.h>
+#include <linux/slab.h>
 #include <asm/uaccess.h>
 #include <asm/unaligned.h>
 #include <linux/buffer_head.h>
@@ -3075,9 +3076,10 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
        ia_valid = attr->ia_valid &= ~(ATTR_KILL_SUID|ATTR_KILL_SGID);
 
        depth = reiserfs_write_lock_once(inode->i_sb);
-       if (attr->ia_valid & ATTR_SIZE) {
+       if (is_quota_modification(inode, attr))
                dquot_initialize(inode);
 
+       if (attr->ia_valid & ATTR_SIZE) {
                /* version 2 items will be caught by the s_maxbytes check
                 ** done for us in vmtruncate
                 */