diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c index 6ada8369a762..59972e03685d 100644 --- a/fs/jffs2/fs.c +++ b/fs/jffs2/fs.c @@ -256,6 +256,7 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino) struct jffs2_sb_info *c; struct jffs2_raw_inode latest_node; union jffs2_device_node jdev; + unsigned int nofs_flag; struct inode *inode; dev_t rdev = 0; int ret; @@ -274,7 +275,9 @@ struct inode *jffs2_iget(struct super_block *sb, unsigned long ino) jffs2_init_inode_info(f); mutex_lock(&f->sem); + nofs_flag = memalloc_nofs_save(); ret = jffs2_do_read_inode(c, f, inode->i_ino, &latest_node); + memalloc_nofs_restore(nofs_flag); if (ret) goto error;