summaryrefslogtreecommitdiff
path: root/fs/jffs2/write.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2008-05-01 15:53:28 +0100
committerDavid Woodhouse <dwmw2@infradead.org>2008-05-01 15:53:28 +0100
commit590fe34c47cb5c2d836ac76fabc5f160bf31a3f1 (patch)
tree9a5d9a855629b916597582796391564891acf9a4 /fs/jffs2/write.c
parent4e571aba7bb25a3a069a7b88c0f63fe5a14c05c6 (diff)
downloadlwn-590fe34c47cb5c2d836ac76fabc5f160bf31a3f1.tar.gz
lwn-590fe34c47cb5c2d836ac76fabc5f160bf31a3f1.zip
[JFFS2] Quiet lockdep false positive.
Don't hold f->sem while calling into jffs2_do_create(). It makes lockdep unhappy, and we don't really need it -- the _reason_ it's a false positive is because nobody else can see this inode yet and so nobody will be trying to lock it anyway. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/write.c')
-rw-r--r--fs/jffs2/write.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/jffs2/write.c b/fs/jffs2/write.c
index 665fce9797d3..87891bdd7915 100644
--- a/fs/jffs2/write.c
+++ b/fs/jffs2/write.c
@@ -438,10 +438,10 @@ int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, str
ret = jffs2_reserve_space(c, sizeof(*ri), &alloclen, ALLOC_NORMAL,
JFFS2_SUMMARY_INODE_SIZE);
D1(printk(KERN_DEBUG "jffs2_do_create(): reserved 0x%x bytes\n", alloclen));
- if (ret) {
- mutex_unlock(&f->sem);
+ if (ret)
return ret;
- }
+
+ mutex_lock(&f->sem);
ri->data_crc = cpu_to_je32(0);
ri->node_crc = cpu_to_je32(crc32(0, ri, sizeof(*ri)-8));