Hi all, Today's linux-next merge of the v9fs-ericvh tree got conflicts in: fs/9p/vfs_inode.c fs/9p/vfs_inode_dotl.c between commit: b74d24f7a74f ("fs: port ->getattr() to pass mnt_idmap") from the vfs-idmapping tree and commit: a905b430e998 ("fs/9p: writeback mode fixes") from the v9fs-ericvh tree. I fixed it up (see below) and can carry the fix as necessary. This is now fixed as far as linux-next is concerned, but any non trivial conflicts should be mentioned to your upstream maintainer when your tree is submitted for merging. You may also want to consider cooperating with the maintainer of the conflicting tree to minimise any particularly complex conflicts. -- Cheers, Stephen Rothwell diff --cc fs/9p/vfs_inode.c index 4344e7a7865f,c61709d98934..000000000000 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@@ -1038,8 -1009,11 +1009,11 @@@ v9fs_vfs_getattr(struct mnt_idmap *idma p9_debug(P9_DEBUG_VFS, "dentry: %p\n", dentry); v9ses = v9fs_dentry2v9ses(dentry); if (v9ses->cache == CACHE_LOOSE || v9ses->cache == CACHE_FSCACHE) { - generic_fillattr(&nop_mnt_idmap, d_inode(dentry), stat); - generic_fillattr(&init_user_ns, inode, stat); ++ generic_fillattr(&nop_mnt_idmap, inode, stat); return 0; + } else if (v9ses->cache >= CACHE_WRITEBACK) { + if (S_ISREG(inode->i_mode)) + filemap_write_and_wait(inode->i_mapping); } fid = v9fs_fid_lookup(dentry); if (IS_ERR(fid)) diff --cc fs/9p/vfs_inode_dotl.c index 3bed3eb3a0e2,3ad48474bf29..000000000000 --- a/fs/9p/vfs_inode_dotl.c +++ b/fs/9p/vfs_inode_dotl.c @@@ -462,8 -452,11 +452,11 @@@ v9fs_vfs_getattr_dotl(struct mnt_idmap p9_debug(P9_DEBUG_VFS, "dentry: %p\n", dentry); v9ses = v9fs_dentry2v9ses(dentry); if (v9ses->cache == CACHE_LOOSE || v9ses->cache == CACHE_FSCACHE) { - generic_fillattr(&nop_mnt_idmap, d_inode(dentry), stat); - generic_fillattr(&init_user_ns, inode, stat); ++ generic_fillattr(&nop_mnt_idmap, inode, stat); return 0; + } else if (v9ses->cache) { + if (S_ISREG(inode->i_mode)) + filemap_write_and_wait(inode->i_mapping); } fid = v9fs_fid_lookup(dentry); if (IS_ERR(fid)) @@@ -592,12 -589,17 +589,17 @@@ int v9fs_vfs_setattr_dotl(struct mnt_id return retval; } - if ((iattr->ia_valid & ATTR_SIZE) && - iattr->ia_size != i_size_read(inode)) + if ((iattr->ia_valid & ATTR_SIZE) && iattr->ia_size != + i_size_read(inode)) { truncate_setsize(inode, iattr->ia_size); + truncate_pagecache(inode, iattr->ia_size); + + if (v9ses->cache == CACHE_FSCACHE) + fscache_resize_cookie(v9fs_inode_cookie(v9inode), iattr->ia_size); + } v9fs_invalidate_inode_attr(inode); - setattr_copy(&init_user_ns, inode, iattr); + setattr_copy(&nop_mnt_idmap, inode, iattr); mark_inode_dirty(inode); if (iattr->ia_valid & ATTR_MODE) { /* We also want to update ACL when we update mode bits */
Attachment:
pgpcE272RG2p8.pgp
Description: OpenPGP digital signature