Commit f0c0ade8 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: Minor gfs2_try_evict cleanup



In gfs2_try_evict(), when an inode can't be evicted, we are grabbing a
temporary reference on the inode glock to poke that glock.  That should
be safe, but it's easier to just grab an inode reference as we already
do earlier in this function.

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 88f4a9f8
Loading
Loading
Loading
Loading
+5 −7
Original line number Original line Diff line number Diff line
@@ -1023,8 +1023,6 @@ static bool gfs2_try_evict(struct gfs2_glock *gl)
		ip = NULL;
		ip = NULL;
	spin_unlock(&gl->gl_lockref.lock);
	spin_unlock(&gl->gl_lockref.lock);
	if (ip) {
	if (ip) {
		struct gfs2_glock *inode_gl = NULL;

		gl->gl_no_formal_ino = ip->i_no_formal_ino;
		gl->gl_no_formal_ino = ip->i_no_formal_ino;
		set_bit(GIF_DEFERRED_DELETE, &ip->i_flags);
		set_bit(GIF_DEFERRED_DELETE, &ip->i_flags);
		d_prune_aliases(&ip->i_inode);
		d_prune_aliases(&ip->i_inode);
@@ -1034,14 +1032,14 @@ static bool gfs2_try_evict(struct gfs2_glock *gl)
		spin_lock(&gl->gl_lockref.lock);
		spin_lock(&gl->gl_lockref.lock);
		ip = gl->gl_object;
		ip = gl->gl_object;
		if (ip) {
		if (ip) {
			inode_gl = ip->i_gl;
			lockref_get(&inode_gl->gl_lockref);
			clear_bit(GIF_DEFERRED_DELETE, &ip->i_flags);
			clear_bit(GIF_DEFERRED_DELETE, &ip->i_flags);
			if (!igrab(&ip->i_inode))
				ip = NULL;
		}
		}
		spin_unlock(&gl->gl_lockref.lock);
		spin_unlock(&gl->gl_lockref.lock);
		if (inode_gl) {
		if (ip) {
			gfs2_glock_poke(inode_gl);
			gfs2_glock_poke(ip->i_gl);
			gfs2_glock_put(inode_gl);
			iput(&ip->i_inode);
		}
		}
		evicted = !ip;
		evicted = !ip;
	}
	}