ceph: make ceph_update_writeable_page() uninterruptible
authorYan, Zheng <zyan@redhat.com>
Fri, 13 May 2016 03:30:24 +0000 (11:30 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2016 23:15:41 +0000 (01:15 +0200)
ceph_update_writeable_page() is used by ceph_write_begin(). It beaks
atomicity of write operation if it's interruptible.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/addr.c

index 97ee5d1fbb61fc67433d2338f1041622d0e75d8d..4aa8e375e648bc49c3bf8dba6d8d6d545787d706 100644 (file)
@@ -1168,7 +1168,7 @@ retry_locked:
                        snapc = ceph_get_snap_context(snapc);
                        unlock_page(page);
                        ceph_queue_writeback(inode);
-                       r = wait_event_interruptible(ci->i_cap_wq,
+                       r = wait_event_killable(ci->i_cap_wq,
                               context_is_writeable_or_written(inode, snapc));
                        ceph_put_snap_context(snapc);
                        if (r == -ERESTARTSYS)