Merge tag 'nfs-for-3.20-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[firefly-linux-kernel-4.4.55.git] / fs / nfs / pagelist.c
index 960c99f75d3f28abe3e44a74cd195eed6fda7c21..d57190a0d533134c2376c6556a8102e88996dd18 100644 (file)
@@ -933,11 +933,15 @@ static bool nfs_can_coalesce_requests(struct nfs_page *prev,
                                      struct nfs_pageio_descriptor *pgio)
 {
        size_t size;
+       struct file_lock_context *flctx;
 
        if (prev) {
                if (!nfs_match_open_context(req->wb_context, prev->wb_context))
                        return false;
-               if (req->wb_context->dentry->d_inode->i_flock != NULL &&
+               flctx = req->wb_context->dentry->d_inode->i_flctx;
+               if (flctx != NULL &&
+                   !(list_empty_careful(&flctx->flc_posix) &&
+                     list_empty_careful(&flctx->flc_flock)) &&
                    !nfs_match_lock_context(req->wb_lock_context,
                                            prev->wb_lock_context))
                        return false;