Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
[firefly-linux-kernel-4.4.55.git] / fs / ceph / file.c
index 1ac0a59867dc1ed732cfc7e1a014257b58a28c4e..5de16f5ac7e9a0d95c34e27eb07b55b17a745658 100644 (file)
@@ -373,7 +373,7 @@ more:
                        goto more;
        }
 
-       if (ret >= 0) {
+       if (read > 0) {
                ret = read;
                /* did we bounce off eof? */
                if (pos + left > inode->i_size)
@@ -611,6 +611,8 @@ out:
                if (check_caps)
                        ceph_check_caps(ceph_inode(inode), CHECK_CAPS_AUTHONLY,
                                        NULL);
+       } else if (ret != -EOLDSNAPC && written > 0) {
+               ret = written;
        }
        return ret;
 }