diff options
| -rw-r--r-- | fs/ceph/caps.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 52a2b90621cd..0176241eaea7 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c | |||
| @@ -2738,15 +2738,13 @@ int ceph_get_caps(struct ceph_inode_info *ci, int need, int want, | |||
| 2738 | _got = 0; | 2738 | _got = 0; |
| 2739 | ret = try_get_cap_refs(ci, need, want, endoff, | 2739 | ret = try_get_cap_refs(ci, need, want, endoff, |
| 2740 | false, &_got); | 2740 | false, &_got); |
| 2741 | if (ret == -EAGAIN) { | 2741 | if (ret == -EAGAIN) |
| 2742 | continue; | 2742 | continue; |
| 2743 | } else if (!ret) { | 2743 | if (!ret) { |
| 2744 | int err; | ||
| 2745 | |||
| 2746 | DEFINE_WAIT_FUNC(wait, woken_wake_function); | 2744 | DEFINE_WAIT_FUNC(wait, woken_wake_function); |
| 2747 | add_wait_queue(&ci->i_cap_wq, &wait); | 2745 | add_wait_queue(&ci->i_cap_wq, &wait); |
| 2748 | 2746 | ||
| 2749 | while (!(err = try_get_cap_refs(ci, need, want, endoff, | 2747 | while (!(ret = try_get_cap_refs(ci, need, want, endoff, |
| 2750 | true, &_got))) { | 2748 | true, &_got))) { |
| 2751 | if (signal_pending(current)) { | 2749 | if (signal_pending(current)) { |
| 2752 | ret = -ERESTARTSYS; | 2750 | ret = -ERESTARTSYS; |
| @@ -2756,14 +2754,16 @@ int ceph_get_caps(struct ceph_inode_info *ci, int need, int want, | |||
| 2756 | } | 2754 | } |
| 2757 | 2755 | ||
| 2758 | remove_wait_queue(&ci->i_cap_wq, &wait); | 2756 | remove_wait_queue(&ci->i_cap_wq, &wait); |
| 2759 | if (err == -EAGAIN) | 2757 | if (ret == -EAGAIN) |
| 2760 | continue; | 2758 | continue; |
| 2761 | } | 2759 | } |
| 2762 | if (ret == -ESTALE) { | 2760 | if (ret < 0) { |
| 2763 | /* session was killed, try renew caps */ | 2761 | if (ret == -ESTALE) { |
| 2764 | ret = ceph_renew_caps(&ci->vfs_inode); | 2762 | /* session was killed, try renew caps */ |
| 2765 | if (ret == 0) | 2763 | ret = ceph_renew_caps(&ci->vfs_inode); |
| 2766 | continue; | 2764 | if (ret == 0) |
| 2765 | continue; | ||
| 2766 | } | ||
| 2767 | return ret; | 2767 | return ret; |
| 2768 | } | 2768 | } |
| 2769 | 2769 | ||
