diff options
author | Adrian Hunter <ext-adrian.hunter@nokia.com> | 2008-07-23 09:55:55 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-08-13 04:32:53 -0400 |
commit | f769108424a19c7758546d1d7d19f098b1a33759 (patch) | |
tree | 324e0ac92b5f02e274f87dd6271c211a127a9b99 /fs/ubifs | |
parent | 7d62ff2c396470bb62a3853f14d3962eac1da974 (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.c | 3 |
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 | } |