diff options
| author | Sage Weil <sage@newdream.net> | 2010-05-07 14:26:34 -0400 |
|---|---|---|
| committer | Sage Weil <sage@newdream.net> | 2010-05-11 12:53:55 -0400 |
| commit | 04d000eb358919043da538f197d63f2a5924a525 (patch) | |
| tree | 725f4031c083323b63664f03b4d0d7ce9c183b21 | |
| parent | 0ceed5db321ac0f9782e77dda476ebe28a8e2199 (diff) | |
ceph: fix open file counting on snapped inodes when mds returns no caps
It's possible the MDS will not issue caps on a snapped inode, in which case
an open request may not __ceph_get_fmode(), botching the open file
counting. (This is actually a server bug, but the client shouldn't BUG out
in this case.)
Signed-off-by: Sage Weil <sage@newdream.net>
| -rw-r--r-- | fs/ceph/inode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 261f3e6c0bcf..85b4d2ffdeba 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
| @@ -733,6 +733,10 @@ no_change: | |||
| 733 | __ceph_get_fmode(ci, cap_fmode); | 733 | __ceph_get_fmode(ci, cap_fmode); |
| 734 | spin_unlock(&inode->i_lock); | 734 | spin_unlock(&inode->i_lock); |
| 735 | } | 735 | } |
| 736 | } else if (cap_fmode >= 0) { | ||
| 737 | pr_warning("mds issued no caps on %llx.%llx\n", | ||
| 738 | ceph_vinop(inode)); | ||
| 739 | __ceph_get_fmode(ci, cap_fmode); | ||
| 736 | } | 740 | } |
| 737 | 741 | ||
| 738 | /* update delegation info? */ | 742 | /* update delegation info? */ |
