aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jffs2/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/jffs2/fs.c')
-rw-r--r--fs/jffs2/fs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c
index ea1f37d4fc58..4607cdc4c46d 100644
--- a/fs/jffs2/fs.c
+++ b/fs/jffs2/fs.c
@@ -185,7 +185,12 @@ static int jffs2_do_setattr (struct inode *inode, struct iattr *iattr)
185 185
186int jffs2_setattr(struct dentry *dentry, struct iattr *iattr) 186int jffs2_setattr(struct dentry *dentry, struct iattr *iattr)
187{ 187{
188 return jffs2_do_setattr(dentry->d_inode, iattr); 188 int rc;
189
190 rc = jffs2_do_setattr(dentry->d_inode, iattr);
191 if (!rc && (iattr->ia_valid & ATTR_MODE))
192 rc = jffs2_acl_chmod(dentry->d_inode);
193 return rc;
189} 194}
190 195
191int jffs2_statfs(struct super_block *sb, struct kstatfs *buf) 196int jffs2_statfs(struct super_block *sb, struct kstatfs *buf)
@@ -224,6 +229,7 @@ void jffs2_clear_inode (struct inode *inode)
224 229
225 D1(printk(KERN_DEBUG "jffs2_clear_inode(): ino #%lu mode %o\n", inode->i_ino, inode->i_mode)); 230 D1(printk(KERN_DEBUG "jffs2_clear_inode(): ino #%lu mode %o\n", inode->i_ino, inode->i_mode));
226 231
232 jffs2_xattr_delete_inode(c, f->inocache);
227 jffs2_do_clear_inode(c, f); 233 jffs2_do_clear_inode(c, f);
228} 234}
229 235
@@ -497,6 +503,8 @@ int jffs2_do_fill_super(struct super_block *sb, void *data, int silent)
497 } 503 }
498 memset(c->inocache_list, 0, INOCACHE_HASHSIZE * sizeof(struct jffs2_inode_cache *)); 504 memset(c->inocache_list, 0, INOCACHE_HASHSIZE * sizeof(struct jffs2_inode_cache *));
499 505
506 jffs2_init_xattr_subsystem(c);
507
500 if ((ret = jffs2_do_mount_fs(c))) 508 if ((ret = jffs2_do_mount_fs(c)))
501 goto out_inohash; 509 goto out_inohash;
502 510
@@ -531,6 +539,7 @@ int jffs2_do_fill_super(struct super_block *sb, void *data, int silent)
531 else 539 else
532 kfree(c->blocks); 540 kfree(c->blocks);
533 out_inohash: 541 out_inohash:
542 jffs2_clear_xattr_subsystem(c);
534 kfree(c->inocache_list); 543 kfree(c->inocache_list);
535 out_wbuf: 544 out_wbuf:
536 jffs2_flash_cleanup(c); 545 jffs2_flash_cleanup(c);