mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 00:20:32 +00:00
ceph: have __mark_caps_flushing return flush_tid
Currently, this function returns ci->i_dirty_caps, but the callers have to check that that isn't 0 before calling this function. Have the callers grab that value directly out of the inode, and have __mark_caps_flushing return the flush_tid instead. Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
354c63a003
commit
9f3345d8ec
1 changed files with 10 additions and 10 deletions
|
@ -1722,11 +1722,11 @@ static bool __finish_cap_flush(struct ceph_mds_client *mdsc,
|
||||||
* Add dirty inode to the flushing list. Assigned a seq number so we
|
* Add dirty inode to the flushing list. Assigned a seq number so we
|
||||||
* can wait for caps to flush without starving.
|
* can wait for caps to flush without starving.
|
||||||
*
|
*
|
||||||
* Called under i_ceph_lock.
|
* Called under i_ceph_lock. Returns the flush tid.
|
||||||
*/
|
*/
|
||||||
static int __mark_caps_flushing(struct inode *inode,
|
static u64 __mark_caps_flushing(struct inode *inode,
|
||||||
struct ceph_mds_session *session, bool wake,
|
struct ceph_mds_session *session, bool wake,
|
||||||
u64 *flush_tid, u64 *oldest_flush_tid)
|
u64 *oldest_flush_tid)
|
||||||
{
|
{
|
||||||
struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc;
|
struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc;
|
||||||
struct ceph_inode_info *ci = ceph_inode(inode);
|
struct ceph_inode_info *ci = ceph_inode(inode);
|
||||||
|
@ -1765,8 +1765,7 @@ static int __mark_caps_flushing(struct inode *inode,
|
||||||
|
|
||||||
list_add_tail(&cf->i_list, &ci->i_cap_flush_list);
|
list_add_tail(&cf->i_list, &ci->i_cap_flush_list);
|
||||||
|
|
||||||
*flush_tid = cf->tid;
|
return cf->tid;
|
||||||
return flushing;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2056,9 +2055,9 @@ void ceph_check_caps(struct ceph_inode_info *ci, int flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cap == ci->i_auth_cap && ci->i_dirty_caps) {
|
if (cap == ci->i_auth_cap && ci->i_dirty_caps) {
|
||||||
flushing = __mark_caps_flushing(inode, session, false,
|
flushing = ci->i_dirty_caps;
|
||||||
&flush_tid,
|
flush_tid = __mark_caps_flushing(inode, session, false,
|
||||||
&oldest_flush_tid);
|
&oldest_flush_tid);
|
||||||
} else {
|
} else {
|
||||||
flushing = 0;
|
flushing = 0;
|
||||||
flush_tid = 0;
|
flush_tid = 0;
|
||||||
|
@ -2137,8 +2136,9 @@ static int try_flush_caps(struct inode *inode, u64 *ptid)
|
||||||
goto retry_locked;
|
goto retry_locked;
|
||||||
}
|
}
|
||||||
|
|
||||||
flushing = __mark_caps_flushing(inode, session, true,
|
flushing = ci->i_dirty_caps;
|
||||||
&flush_tid, &oldest_flush_tid);
|
flush_tid = __mark_caps_flushing(inode, session, true,
|
||||||
|
&oldest_flush_tid);
|
||||||
|
|
||||||
/* __send_cap drops i_ceph_lock */
|
/* __send_cap drops i_ceph_lock */
|
||||||
delayed = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH,
|
delayed = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH,
|
||||||
|
|
Loading…
Reference in a new issue