aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ubifs
diff options
context:
space:
mode:
authorAdrian Hunter <ext-adrian.hunter@nokia.com>2008-07-23 09:55:55 -0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2008-08-13 04:32:53 -0400
commitf769108424a19c7758546d1d7d19f098b1a33759 (patch)
tree324e0ac92b5f02e274f87dd6271c211a127a9b99 /fs/ubifs
parent7d62ff2c396470bb62a3853f14d3962eac1da974 (diff)
UBIFS: correct orphan deletion order
The debug function that checks orphans, does so using the TNC mutex. That means it will not see a correct picture if the inode is removed from the orphan tree before it is removed from TNC. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Diffstat (limited to 'fs/ubifs')
-rw-r--r--fs/ubifs/journal.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index 25de6fde383f..acdae00aaa54 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -871,10 +871,11 @@ int ubifs_jnl_delete_inode(struct ubifs_info *c, const struct inode *inode)
871 return ubifs_jnl_write_inode(c, inode); 871 return ubifs_jnl_write_inode(c, inode);
872 } 872 }
873 873
874 ubifs_delete_orphan(c, inode->i_ino);
875 err = ubifs_tnc_remove_ino(c, inode->i_ino); 874 err = ubifs_tnc_remove_ino(c, inode->i_ino);
876 if (err) 875 if (err)
877 ubifs_ro_mode(c, err); 876 ubifs_ro_mode(c, err);
877 else
878 ubifs_delete_orphan(c, inode->i_ino);
878 up_read(&c->commit_sem); 879 up_read(&c->commit_sem);
879 return err; 880 return err;
880} 881}