diff options
author | Alex Shi <alex.shi@linaro.org> | 2015-03-30 11:38:40 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2015-03-30 11:38:40 +0800 |
commit | 88720d8b842c59efcc0c4dc17e2107f4dae502f5 (patch) | |
tree | 967e60ace88cd9e4f9819042eedf3be6a445bb54 /fs | |
parent | ba0bfedf4c9cad58f56a7038d1462ffc21cd33df (diff) | |
parent | 73895725a9401bd3454757fcfa7d691270ac7498 (diff) |
Merge tag 'v3.10.73' into linux-linaro-lsk
This is the 3.10.73 stable release
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fuse/dev.c | 7 | ||||
-rw-r--r-- | fs/nilfs2/segment.c | 7 |
2 files changed, 9 insertions, 5 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 23bf1a52a5da..b535008b6c4c 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -819,8 +819,8 @@ static int fuse_try_move_page(struct fuse_copy_state *cs, struct page **pagep) newpage = buf->page; - if (WARN_ON(!PageUptodate(newpage))) - return -EIO; + if (!PageUptodate(newpage)) + SetPageUptodate(newpage); ClearPageMappedToDisk(newpage); @@ -1725,6 +1725,9 @@ copy_finish: static int fuse_notify(struct fuse_conn *fc, enum fuse_notify_code code, unsigned int size, struct fuse_copy_state *cs) { + /* Don't try to move pages (yet) */ + cs->move_pages = 0; + switch (code) { case FUSE_NOTIFY_POLL: return fuse_notify_poll(fc, size, cs); diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index b3c95c1a4700..99294a286e66 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c @@ -1906,6 +1906,7 @@ static void nilfs_segctor_drop_written_files(struct nilfs_sc_info *sci, struct the_nilfs *nilfs) { struct nilfs_inode_info *ii, *n; + int during_mount = !(sci->sc_super->s_flags & MS_ACTIVE); int defer_iput = false; spin_lock(&nilfs->ns_inode_lock); @@ -1918,10 +1919,10 @@ static void nilfs_segctor_drop_written_files(struct nilfs_sc_info *sci, brelse(ii->i_bh); ii->i_bh = NULL; list_del_init(&ii->i_dirty); - if (!ii->vfs_inode.i_nlink) { + if (!ii->vfs_inode.i_nlink || during_mount) { /* - * Defer calling iput() to avoid a deadlock - * over I_SYNC flag for inodes with i_nlink == 0 + * Defer calling iput() to avoid deadlocks if + * i_nlink == 0 or mount is not yet finished. */ list_add_tail(&ii->i_dirty, &sci->sc_iput_queue); defer_iput = true; |