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>
This commit is contained in:
Родитель
0ceed5db32
Коммит
04d000eb35
|
@ -733,6 +733,10 @@ no_change:
|
||||||
__ceph_get_fmode(ci, cap_fmode);
|
__ceph_get_fmode(ci, cap_fmode);
|
||||||
spin_unlock(&inode->i_lock);
|
spin_unlock(&inode->i_lock);
|
||||||
}
|
}
|
||||||
|
} else if (cap_fmode >= 0) {
|
||||||
|
pr_warning("mds issued no caps on %llx.%llx\n",
|
||||||
|
ceph_vinop(inode));
|
||||||
|
__ceph_get_fmode(ci, cap_fmode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* update delegation info? */
|
/* update delegation info? */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче