Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2718bff authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull gfs2 updates from Steven Whitehouse:
 "This time we have mostly clean ups.  There is a bug fix for a NULL
  dereference relating to ACLs, and another which improves (but does not
  fix entirely) an allocation fall-back code path.  The other three
  patches are small clean ups"

* tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
  GFS2: Fix crash during ACL deletion in acl max entry check in gfs2_set_acl()
  GFS2: use __vmalloc GFP_NOFS for fs-related allocations.
  GFS2: Eliminate a nonsense goto
  GFS2: fix sprintf format specifier
  GFS2: Eliminate __gfs2_glock_remove_from_lru
parents ae90fb14 27870207
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -73,7 +73,7 @@ int gfs2_set_acl(struct inode *inode, struct posix_acl *acl, int type)


	BUG_ON(name == NULL);
	BUG_ON(name == NULL);


	if (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
	if (acl && acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
		return -E2BIG;
		return -E2BIG;


	if (type == ACL_TYPE_ACCESS) {
	if (type == ACL_TYPE_ACCESS) {
+2 −1
Original line number Original line Diff line number Diff line
@@ -1896,7 +1896,8 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len,


	ht = kzalloc(size, GFP_NOFS | __GFP_NOWARN);
	ht = kzalloc(size, GFP_NOFS | __GFP_NOWARN);
	if (ht == NULL)
	if (ht == NULL)
		ht = vzalloc(size);
		ht = __vmalloc(size, GFP_NOFS | __GFP_NOWARN | __GFP_ZERO,
			       PAGE_KERNEL);
	if (!ht)
	if (!ht)
		return -ENOMEM;
		return -ENOMEM;


+3 −10
Original line number Original line Diff line number Diff line
@@ -173,19 +173,14 @@ void gfs2_glock_add_to_lru(struct gfs2_glock *gl)
	spin_unlock(&lru_lock);
	spin_unlock(&lru_lock);
}
}


static void __gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
static void gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
{
{
	spin_lock(&lru_lock);
	if (!list_empty(&gl->gl_lru)) {
	if (!list_empty(&gl->gl_lru)) {
		list_del_init(&gl->gl_lru);
		list_del_init(&gl->gl_lru);
		atomic_dec(&lru_count);
		atomic_dec(&lru_count);
		clear_bit(GLF_LRU, &gl->gl_flags);
		clear_bit(GLF_LRU, &gl->gl_flags);
	}
	}
}

static void gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
{
	spin_lock(&lru_lock);
	__gfs2_glock_remove_from_lru(gl);
	spin_unlock(&lru_lock);
	spin_unlock(&lru_lock);
}
}


@@ -205,9 +200,7 @@ void gfs2_glock_put(struct gfs2_glock *gl)


	lockref_mark_dead(&gl->gl_lockref);
	lockref_mark_dead(&gl->gl_lockref);


	spin_lock(&lru_lock);
	gfs2_glock_remove_from_lru(gl);
	__gfs2_glock_remove_from_lru(gl);
	spin_unlock(&lru_lock);
	spin_unlock(&gl->gl_lockref.lock);
	spin_unlock(&gl->gl_lockref.lock);
	spin_lock_bucket(gl->gl_hash);
	spin_lock_bucket(gl->gl_hash);
	hlist_bl_del_rcu(&gl->gl_list);
	hlist_bl_del_rcu(&gl->gl_list);
+0 −3
Original line number Original line Diff line number Diff line
@@ -543,10 +543,7 @@ static int link_dinode(struct gfs2_inode *dip, const struct qstr *name,
	}
	}


	error = gfs2_dir_add(&dip->i_inode, name, ip, da);
	error = gfs2_dir_add(&dip->i_inode, name, ip, da);
	if (error)
		goto fail_end_trans;


fail_end_trans:
	gfs2_trans_end(sdp);
	gfs2_trans_end(sdp);
fail_ipreserv:
fail_ipreserv:
	gfs2_inplace_release(dip);
	gfs2_inplace_release(dip);
+1 −1
Original line number Original line Diff line number Diff line
@@ -439,7 +439,7 @@ static void gfs2_recovery_done(struct gfs2_sbd *sdp, unsigned int jid,


        ls->ls_recover_jid_done = jid;
        ls->ls_recover_jid_done = jid;
        ls->ls_recover_jid_status = message;
        ls->ls_recover_jid_status = message;
	sprintf(env_jid, "JID=%d", jid);
	sprintf(env_jid, "JID=%u", jid);
	sprintf(env_status, "RECOVERY=%s",
	sprintf(env_status, "RECOVERY=%s",
		message == LM_RD_SUCCESS ? "Done" : "Failed");
		message == LM_RD_SUCCESS ? "Done" : "Failed");
        kobject_uevent_env(&sdp->sd_kobj, KOBJ_CHANGE, envp);
        kobject_uevent_env(&sdp->sd_kobj, KOBJ_CHANGE, envp);
Loading