diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index b7d218a..d5ea0f3 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -1081,18 +1081,24 @@ retry_locked:
 			r = wait_event_interruptible(ci->i_cap_wq,
 			       context_is_writeable_or_written(inode, snapc));
 			ceph_put_snap_context(snapc);
-			if (r == -ERESTARTSYS)
-				return r;
-			return -EAGAIN;
+			if (r != -ERESTARTSYS)
+				r = -EAGAIN;
+			pr_err("update_writeable_page no snapc %p %d\n", page, r);
+			return r;
 		}
 		ceph_put_snap_context(oldest);
 
 		/* yay, writeable, do it now (without dropping page lock) */
 		dout(" page %p snapc %p not current, but oldest\n",
 		     page, snapc);
-		if (!clear_page_dirty_for_io(page))
+		if (!clear_page_dirty_for_io(page)) {
+			if (!PageLocked(page))
+				pr_err("clear_page_dirty_for_io unlocks %p\n", page);
 			goto retry_locked;
+		}
 		r = writepage_nounlock(page, NULL);
+		if (!PageLocked(page))
+			pr_err("writepage_nounlock unlocks %p %d\n", page, r);
 		if (r < 0)
 			goto fail_nosnap;
 		goto retry_locked;
@@ -1123,11 +1129,14 @@ retry_locked:
 
 	/* we need to read it. */
 	r = readpage_nounlock(file, page);
+	if (!PageLocked(page))
+		pr_err("readpage_nounlock unlocks %p %d\n", page, r);
 	if (r < 0)
 		goto fail_nosnap;
 	goto retry_locked;
 fail_nosnap:
 	unlock_page(page);
+	pr_err("update_writeable_page failed %p %d\n", page, r);
 	return r;
 }
 
