Commit 1fb38c93 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'fs_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs

Pull UDF / reiserfs updates from Jan Kara:
 "One UDF fix and one reiserfs cleanup"

* tag 'fs_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  udf: Fix error handling in udf_new_inode()
  reiserfs: don't use congestion_wait()
parents 3d3d6733 f05f2429
...@@ -951,7 +951,9 @@ static int reiserfs_async_progress_wait(struct super_block *s) ...@@ -951,7 +951,9 @@ static int reiserfs_async_progress_wait(struct super_block *s)
int depth; int depth;
depth = reiserfs_write_unlock_nested(s); depth = reiserfs_write_unlock_nested(s);
congestion_wait(BLK_RW_ASYNC, HZ / 10); wait_var_event_timeout(&j->j_async_throttle,
atomic_read(&j->j_async_throttle) == 0,
HZ / 10);
reiserfs_write_lock_nested(s, depth); reiserfs_write_lock_nested(s, depth);
} }
...@@ -1058,7 +1060,8 @@ static int flush_commit_list(struct super_block *s, ...@@ -1058,7 +1060,8 @@ static int flush_commit_list(struct super_block *s,
put_bh(tbh) ; put_bh(tbh) ;
} }
} }
atomic_dec(&journal->j_async_throttle); if (atomic_dec_and_test(&journal->j_async_throttle))
wake_up_var(&journal->j_async_throttle);
for (i = 0; i < (jl->j_len + 1); i++) { for (i = 0; i < (jl->j_len + 1); i++) {
bn = SB_ONDISK_JOURNAL_1st_BLOCK(s) + bn = SB_ONDISK_JOURNAL_1st_BLOCK(s) +
......
...@@ -77,6 +77,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode) ...@@ -77,6 +77,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
GFP_KERNEL); GFP_KERNEL);
} }
if (!iinfo->i_data) { if (!iinfo->i_data) {
make_bad_inode(inode);
iput(inode); iput(inode);
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
...@@ -86,6 +87,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode) ...@@ -86,6 +87,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
dinfo->i_location.partitionReferenceNum, dinfo->i_location.partitionReferenceNum,
start, &err); start, &err);
if (err) { if (err) {
make_bad_inode(inode);
iput(inode); iput(inode);
return ERR_PTR(err); return ERR_PTR(err);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment