aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3/namei.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext3/namei.c')
-rw-r--r--fs/ext3/namei.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c
index 4f35b2f315d4..e8e211795e9f 100644
--- a/fs/ext3/namei.c
+++ b/fs/ext3/namei.c
@@ -921,9 +921,12 @@ restart:
921 num++; 921 num++;
922 bh = ext3_getblk(NULL, dir, b++, 0, &err); 922 bh = ext3_getblk(NULL, dir, b++, 0, &err);
923 bh_use[ra_max] = bh; 923 bh_use[ra_max] = bh;
924 if (bh) 924 if (bh && !bh_uptodate_or_lock(bh)) {
925 ll_rw_block(READ | REQ_META | REQ_PRIO, 925 get_bh(bh);
926 1, &bh); 926 bh->b_end_io = end_buffer_read_sync;
927 submit_bh(READ | REQ_META | REQ_PRIO,
928 bh);
929 }
927 } 930 }
928 } 931 }
929 if ((bh = bh_use[ra_ptr++]) == NULL) 932 if ((bh = bh_use[ra_ptr++]) == NULL)
@@ -2272,7 +2275,7 @@ retry:
2272 err = PTR_ERR(handle); 2275 err = PTR_ERR(handle);
2273 goto err_drop_inode; 2276 goto err_drop_inode;
2274 } 2277 }
2275 inc_nlink(inode); 2278 set_nlink(inode, 1);
2276 err = ext3_orphan_del(handle, inode); 2279 err = ext3_orphan_del(handle, inode);
2277 if (err) { 2280 if (err) {
2278 ext3_journal_stop(handle); 2281 ext3_journal_stop(handle);