From: Sage Weil Date: Sun, 7 Nov 2010 17:39:00 +0000 (-0800) Subject: ceph: re-request max_size if cap auth changes X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=feb4cc9bb433bf1491ac5ffbba133f3258dacf06;p=linux-beck.git ceph: re-request max_size if cap auth changes If the auth cap migrates to another MDS, clear requested_max_size so that we resend any pending max_size increase requests. This fixes potential hangs on writes that extend a file and race with an cap migration between MDSs. Signed-off-by: Sage Weil --- diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 6e0942f33dd8..04b207b0c842 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -2689,6 +2689,11 @@ static void handle_cap_import(struct ceph_mds_client *mdsc, NULL /* no caps context */); try_flush_caps(inode, session, NULL); up_read(&mdsc->snap_rwsem); + + /* make sure we re-request max_size, if necessary */ + spin_lock(&inode->i_lock); + ci->i_requested_max_size = 0; + spin_unlock(&inode->i_lock); } /*