Skip to content

Commit

Permalink
UBIFS: always read hashed-key nodes under TNC mutex
Browse files Browse the repository at this point in the history
Leaf-nodes that have a hashed key are stored in the
leaf-node-cache (LNC) which is protected by the TNC
mutex.  Consequently, when reading a leaf node with
a hashed key (i.e. directory entries, xattr entries)
the TNC mutex is always required.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
  • Loading branch information
Adrian Hunter authored and Artem Bityutskiy committed Aug 25, 2008
1 parent 04da11b commit 761e29f
Showing 1 changed file with 1 addition and 6 deletions.
7 changes: 1 addition & 6 deletions fs/ubifs/tnc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1498,7 +1498,6 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
{
int found, n, err;
struct ubifs_znode *znode;
struct ubifs_zbranch zbr;

dbg_tnc("name '%.*s' key %s", nm->len, nm->name, DBGKEY(key));
mutex_lock(&c->tnc_mutex);
Expand All @@ -1522,11 +1521,7 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
goto out_unlock;
}

zbr = znode->zbranch[n];
mutex_unlock(&c->tnc_mutex);

err = tnc_read_node_nm(c, &zbr, node);
return err;
err = tnc_read_node_nm(c, &znode->zbranch[n], node);

out_unlock:
mutex_unlock(&c->tnc_mutex);
Expand Down

0 comments on commit 761e29f

Please sign in to comment.