Loading fs/reiserfs/file.c +2 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ static int reiserfs_file_release(struct inode *inode, struct file *filp) #ifdef REISERFS_PREALLOCATE reiserfs_discard_prealloc(&th, inode); #endif err = journal_end(&th, inode->i_sb); err = journal_end(&th); /* copy back the error code from journal_begin */ if (!err) Loading Loading @@ -227,7 +227,7 @@ int reiserfs_commit_page(struct inode *inode, struct page *page, } } if (logit) { ret = journal_end(&th, s); ret = journal_end(&th); drop_write_lock: reiserfs_write_unlock(s); } Loading fs/reiserfs/inode.c +15 −15 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ void reiserfs_evict_inode(struct inode *inode) reiserfs_write_lock_nested(inode->i_sb, depth); } if (journal_end(&th, inode->i_sb)) if (journal_end(&th)) goto out; /* Loading Loading @@ -264,7 +264,7 @@ static int restart_transaction(struct reiserfs_transaction_handle *th, return 0; } reiserfs_update_sd(th, inode); err = journal_end(th, s); err = journal_end(th); if (!err) { err = journal_begin(th, s, JOURNAL_PER_BALANCE_CNT * 6); if (!err) Loading Loading @@ -1790,7 +1790,7 @@ int reiserfs_write_inode(struct inode *inode, struct writeback_control *wbc) reiserfs_write_lock(inode->i_sb); if (!journal_begin(&th, inode->i_sb, jbegin_count)) { reiserfs_update_sd(&th, inode); journal_end_sync(&th, inode->i_sb); journal_end_sync(&th); } reiserfs_write_unlock(inode->i_sb); } Loading Loading @@ -2097,7 +2097,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); journal_end(th, th->t_super); journal_end(th); goto out_inserted_sd; } Loading @@ -2108,7 +2108,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); journal_end(th, th->t_super); journal_end(th); goto out_inserted_sd; } } else if (inode->i_sb->s_flags & MS_POSIXACL) { Loading @@ -2125,7 +2125,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); retval = journal_end(th, th->t_super); retval = journal_end(th); if (retval) err = retval; goto out_inserted_sd; Loading @@ -2147,7 +2147,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, reiserfs_write_lock_nested(inode->i_sb, depth); out_end_trans: journal_end(th, th->t_super); journal_end(th); /* * Drop can be outside and it needs more credits so it's better * to have it outside Loading Loading @@ -2317,7 +2317,7 @@ int reiserfs_truncate_file(struct inode *inode, int update_timestamps) */ add_save_link(&th, inode, 1); err2 = reiserfs_do_truncate(&th, inode, page, update_timestamps); error = journal_end(&th, inode->i_sb); error = journal_end(&th); if (error) goto out; Loading Loading @@ -2480,7 +2480,7 @@ static int map_block_for_writepage(struct inode *inode, out: pathrelse(&path); if (trans_running) { int err = journal_end(&th, inode->i_sb); int err = journal_end(&th); if (err) retval = err; trans_running = 0; Loading Loading @@ -2650,7 +2650,7 @@ static int reiserfs_write_full_page(struct page *page, } while ((bh = bh->b_this_page) != head); if (checked) { error = journal_end(&th, s); error = journal_end(&th); reiserfs_write_unlock(s); if (error) goto fail; Loading Loading @@ -2953,7 +2953,7 @@ static int reiserfs_write_end(struct file *file, struct address_space *mapping, mark_inode_dirty(inode); reiserfs_update_sd(&myth, inode); update_sd = 1; ret = journal_end(&myth, inode->i_sb); ret = journal_end(&myth); if (ret) goto journal_error; } Loading Loading @@ -3042,7 +3042,7 @@ int reiserfs_commit_write(struct file *f, struct page *page, mark_inode_dirty(inode); reiserfs_update_sd(&myth, inode); update_sd = 1; ret = journal_end(&myth, inode->i_sb); ret = journal_end(&myth); if (ret) goto journal_error; } Loading Loading @@ -3346,7 +3346,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) err = journal_begin(&th, inode->i_sb, 4); if (!err) { reiserfs_discard_prealloc(&th, inode); err = journal_end(&th, inode->i_sb); err = journal_end(&th); } if (err) error = err; Loading Loading @@ -3398,7 +3398,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) error = dquot_transfer(inode, attr); reiserfs_write_lock(inode->i_sb); if (error) { journal_end(&th, inode->i_sb); journal_end(&th); reiserfs_write_unlock(inode->i_sb); goto out; } Loading @@ -3412,7 +3412,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) if (attr->ia_valid & ATTR_GID) inode->i_gid = attr->ia_gid; mark_inode_dirty(inode); error = journal_end(&th, inode->i_sb); error = journal_end(&th); reiserfs_write_unlock(inode->i_sb); if (error) goto out; Loading fs/reiserfs/journal.c +22 −21 Original line number Diff line number Diff line Loading @@ -83,8 +83,7 @@ #define COMMIT_NOW 2 /* end and commit this transaction */ #define WAIT 4 /* wait for the log blocks to hit the disk */ static int do_journal_end(struct reiserfs_transaction_handle *, struct super_block *, int flags); static int do_journal_end(struct reiserfs_transaction_handle *, int flags); static int flush_journal_list(struct super_block *s, struct reiserfs_journal_list *jl, int flushall); static int flush_commit_list(struct super_block *s, Loading Loading @@ -1920,7 +1919,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, if (!error && !(sb->s_flags & MS_RDONLY)) { /* end the current trans */ BUG_ON(!th->t_trans_id); do_journal_end(th, sb, FLUSH_ALL); do_journal_end(th, FLUSH_ALL); /* * make sure something gets logged to force Loading @@ -1932,7 +1931,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(&myth, sb, SB_BUFFER_WITH_SB(sb)); do_journal_end(&myth, sb, FLUSH_ALL); do_journal_end(&myth, FLUSH_ALL); flushed = 1; } } Loading @@ -1946,7 +1945,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(&myth, sb, SB_BUFFER_WITH_SB(sb)); do_journal_end(&myth, sb, FLUSH_ALL); do_journal_end(&myth, FLUSH_ALL); } } Loading Loading @@ -3101,9 +3100,9 @@ static int do_journal_begin_r(struct reiserfs_transaction_handle *th, /* someone might have ended the transaction while we joined */ if (old_trans_id != journal->j_trans_id) { retval = do_journal_end(&myth, sb, 0); retval = do_journal_end(&myth, 0); } else { retval = do_journal_end(&myth, sb, COMMIT_NOW); retval = do_journal_end(&myth, COMMIT_NOW); } if (retval) Loading Loading @@ -3173,7 +3172,7 @@ int reiserfs_end_persistent_transaction(struct reiserfs_transaction_handle *th) struct super_block *s = th->t_super; int ret = 0; if (th->t_trans_id) ret = journal_end(th, th->t_super); ret = journal_end(th); else ret = -EIO; if (th->t_refcount == 0) { Loading Loading @@ -3374,8 +3373,9 @@ int journal_mark_dirty(struct reiserfs_transaction_handle *th, return 0; } int journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb) int journal_end(struct reiserfs_transaction_handle *th) { struct super_block *sb = th->t_super; if (!current->journal_info && th->t_refcount > 1) reiserfs_warning(sb, "REISER-NESTING", "th NULL, refcount %d", th->t_refcount); Loading @@ -3402,7 +3402,7 @@ int journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb) } return 0; } else { return do_journal_end(th, sb, 0); return do_journal_end(th, 0); } } Loading Loading @@ -3511,9 +3511,9 @@ static int can_dirty(struct reiserfs_journal_cnode *cn) * syncs the commit blocks, but does not force the real buffers to disk * will wait until the current transaction is done/committed before returning */ int journal_end_sync(struct reiserfs_transaction_handle *th, struct super_block *sb) int journal_end_sync(struct reiserfs_transaction_handle *th) { struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); BUG_ON(!th->t_trans_id); Loading @@ -3524,7 +3524,7 @@ int journal_end_sync(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(th, sb, SB_BUFFER_WITH_SB(sb)); } return do_journal_end(th, sb, COMMIT_NOW | WAIT); return do_journal_end(th, COMMIT_NOW | WAIT); } /* writeback the pending async commits to disk */ Loading Loading @@ -3584,7 +3584,7 @@ void reiserfs_flush_old_commits(struct super_block *sb) * no sense to do an async commit so that kreiserfsd * can do it later */ do_journal_end(&th, sb, COMMIT_NOW | WAIT); do_journal_end(&th, COMMIT_NOW | WAIT); } } } Loading @@ -3604,8 +3604,7 @@ void reiserfs_flush_old_commits(struct super_block *sb) * Note, we can't allow the journal_end to proceed while there are still * writers in the log. */ static int check_journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb, int flags) static int check_journal_end(struct reiserfs_transaction_handle *th, int flags) { time_t now; Loading @@ -3613,6 +3612,7 @@ static int check_journal_end(struct reiserfs_transaction_handle *th, int commit_now = flags & COMMIT_NOW; int wait_on_commit = flags & WAIT; struct reiserfs_journal_list *jl; struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); BUG_ON(!th->t_trans_id); Loading Loading @@ -3864,11 +3864,11 @@ static int __commit_trans_jl(struct inode *inode, unsigned long id, reiserfs_prepare_for_journal(sb, SB_BUFFER_WITH_SB(sb), 1); journal_mark_dirty(&th, sb, SB_BUFFER_WITH_SB(sb)); ret = journal_end(&th, sb); ret = journal_end(&th); goto flush_commit_only; } ret = journal_end_sync(&th, sb); ret = journal_end_sync(&th); if (!ret) ret = 1; Loading Loading @@ -3974,9 +3974,9 @@ int reiserfs_prepare_for_journal(struct super_block *sb, * If the journal is aborted, we just clean up. Things like flushing * journal lists, etc just won't happen. */ static int do_journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb, int flags) static int do_journal_end(struct reiserfs_transaction_handle *th, int flags) { struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); struct reiserfs_journal_cnode *cn, *next, *jl_cn; struct reiserfs_journal_cnode *last_cn = NULL; Loading @@ -3998,6 +3998,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, BUG_ON(th->t_refcount > 1); BUG_ON(!th->t_trans_id); BUG_ON(!th->t_super); /* * protect flush_older_commits from doing mistakes if the Loading Loading @@ -4031,7 +4032,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, * not return 1 it tells us if we should continue with the * journal_end, or just return */ if (!check_journal_end(th, sb, flags)) { if (!check_journal_end(th, flags)) { reiserfs_schedule_old_flush(sb); wake_queued_writers(sb); reiserfs_async_progress_wait(sb); Loading fs/reiserfs/namei.c +19 −19 Original line number Diff line number Diff line Loading @@ -672,7 +672,7 @@ static int reiserfs_create(struct inode *dir, struct dentry *dentry, umode_t mod int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -684,7 +684,7 @@ static int reiserfs_create(struct inode *dir, struct dentry *dentry, umode_t mod unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); Loading Loading @@ -755,7 +755,7 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -765,7 +765,7 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); Loading Loading @@ -847,7 +847,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode clear_nlink(inode); DEC_DIR_INODE_NLINK(dir); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -859,7 +859,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); return retval; Loading Loading @@ -956,7 +956,7 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) /* prevent empty directory from getting lost */ add_save_link(&th, inode, 0 /* not truncate */ ); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_check_path(&path); out_rmdir: reiserfs_write_unlock(dir->i_sb); Loading @@ -969,7 +969,7 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) * release path if operation was not complete */ pathrelse(&path); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return err ? err : retval; } Loading Loading @@ -1059,14 +1059,14 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) /* prevent file from getting lost */ add_save_link(&th, inode, 0 /* not truncate */ ); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_check_path(&path); reiserfs_write_unlock(dir->i_sb); return retval; end_unlink: pathrelse(&path); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_check_path(&path); if (err) retval = err; Loading Loading @@ -1153,7 +1153,7 @@ static int reiserfs_symlink(struct inode *parent_dir, int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, parent_dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -1163,7 +1163,7 @@ static int reiserfs_symlink(struct inode *parent_dir, unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, parent_dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(parent_dir->i_sb); return retval; Loading Loading @@ -1213,7 +1213,7 @@ static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, if (retval) { int err; drop_nlink(inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return err ? err : retval; } Loading @@ -1223,7 +1223,7 @@ static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, ihold(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return retval; } Loading Loading @@ -1385,7 +1385,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, "new entry is found, new inode == 0"); } } else if (retval) { int err = journal_end(&th, old_dir->i_sb); int err = journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return err ? err : retval; } Loading @@ -1412,7 +1412,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, &old_entry_path, &old_de)) != NAME_FOUND) { pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading @@ -1436,7 +1436,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, if (retval != NAME_FOUND_INVISIBLE && retval != NAME_FOUND) { pathrelse(&new_entry_path); pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading @@ -1454,7 +1454,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, pathrelse(&dot_dot_entry_path); pathrelse(&new_entry_path); pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading Loading @@ -1601,7 +1601,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, reiserfs_update_sd(&th, new_dentry_inode); } retval = journal_end(&th, old_dir->i_sb); retval = journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return retval; } Loading fs/reiserfs/reiserfs.h +2 −3 Original line number Diff line number Diff line Loading @@ -2914,9 +2914,8 @@ int journal_init(struct super_block *, const char *j_dev_name, int old_format, int journal_release(struct reiserfs_transaction_handle *, struct super_block *); int journal_release_error(struct reiserfs_transaction_handle *, struct super_block *); int journal_end(struct reiserfs_transaction_handle *, struct super_block *); int journal_end_sync(struct reiserfs_transaction_handle *, struct super_block *); int journal_end(struct reiserfs_transaction_handle *); int journal_end_sync(struct reiserfs_transaction_handle *); int journal_mark_freed(struct reiserfs_transaction_handle *, struct super_block *, b_blocknr_t blocknr); int journal_transaction_should_end(struct reiserfs_transaction_handle *, int); Loading Loading
fs/reiserfs/file.c +2 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ static int reiserfs_file_release(struct inode *inode, struct file *filp) #ifdef REISERFS_PREALLOCATE reiserfs_discard_prealloc(&th, inode); #endif err = journal_end(&th, inode->i_sb); err = journal_end(&th); /* copy back the error code from journal_begin */ if (!err) Loading Loading @@ -227,7 +227,7 @@ int reiserfs_commit_page(struct inode *inode, struct page *page, } } if (logit) { ret = journal_end(&th, s); ret = journal_end(&th); drop_write_lock: reiserfs_write_unlock(s); } Loading
fs/reiserfs/inode.c +15 −15 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ void reiserfs_evict_inode(struct inode *inode) reiserfs_write_lock_nested(inode->i_sb, depth); } if (journal_end(&th, inode->i_sb)) if (journal_end(&th)) goto out; /* Loading Loading @@ -264,7 +264,7 @@ static int restart_transaction(struct reiserfs_transaction_handle *th, return 0; } reiserfs_update_sd(th, inode); err = journal_end(th, s); err = journal_end(th); if (!err) { err = journal_begin(th, s, JOURNAL_PER_BALANCE_CNT * 6); if (!err) Loading Loading @@ -1790,7 +1790,7 @@ int reiserfs_write_inode(struct inode *inode, struct writeback_control *wbc) reiserfs_write_lock(inode->i_sb); if (!journal_begin(&th, inode->i_sb, jbegin_count)) { reiserfs_update_sd(&th, inode); journal_end_sync(&th, inode->i_sb); journal_end_sync(&th); } reiserfs_write_unlock(inode->i_sb); } Loading Loading @@ -2097,7 +2097,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); journal_end(th, th->t_super); journal_end(th); goto out_inserted_sd; } Loading @@ -2108,7 +2108,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); journal_end(th, th->t_super); journal_end(th); goto out_inserted_sd; } } else if (inode->i_sb->s_flags & MS_POSIXACL) { Loading @@ -2125,7 +2125,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, if (retval) { err = retval; reiserfs_check_path(&path_to_key); retval = journal_end(th, th->t_super); retval = journal_end(th); if (retval) err = retval; goto out_inserted_sd; Loading @@ -2147,7 +2147,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, reiserfs_write_lock_nested(inode->i_sb, depth); out_end_trans: journal_end(th, th->t_super); journal_end(th); /* * Drop can be outside and it needs more credits so it's better * to have it outside Loading Loading @@ -2317,7 +2317,7 @@ int reiserfs_truncate_file(struct inode *inode, int update_timestamps) */ add_save_link(&th, inode, 1); err2 = reiserfs_do_truncate(&th, inode, page, update_timestamps); error = journal_end(&th, inode->i_sb); error = journal_end(&th); if (error) goto out; Loading Loading @@ -2480,7 +2480,7 @@ static int map_block_for_writepage(struct inode *inode, out: pathrelse(&path); if (trans_running) { int err = journal_end(&th, inode->i_sb); int err = journal_end(&th); if (err) retval = err; trans_running = 0; Loading Loading @@ -2650,7 +2650,7 @@ static int reiserfs_write_full_page(struct page *page, } while ((bh = bh->b_this_page) != head); if (checked) { error = journal_end(&th, s); error = journal_end(&th); reiserfs_write_unlock(s); if (error) goto fail; Loading Loading @@ -2953,7 +2953,7 @@ static int reiserfs_write_end(struct file *file, struct address_space *mapping, mark_inode_dirty(inode); reiserfs_update_sd(&myth, inode); update_sd = 1; ret = journal_end(&myth, inode->i_sb); ret = journal_end(&myth); if (ret) goto journal_error; } Loading Loading @@ -3042,7 +3042,7 @@ int reiserfs_commit_write(struct file *f, struct page *page, mark_inode_dirty(inode); reiserfs_update_sd(&myth, inode); update_sd = 1; ret = journal_end(&myth, inode->i_sb); ret = journal_end(&myth); if (ret) goto journal_error; } Loading Loading @@ -3346,7 +3346,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) err = journal_begin(&th, inode->i_sb, 4); if (!err) { reiserfs_discard_prealloc(&th, inode); err = journal_end(&th, inode->i_sb); err = journal_end(&th); } if (err) error = err; Loading Loading @@ -3398,7 +3398,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) error = dquot_transfer(inode, attr); reiserfs_write_lock(inode->i_sb); if (error) { journal_end(&th, inode->i_sb); journal_end(&th); reiserfs_write_unlock(inode->i_sb); goto out; } Loading @@ -3412,7 +3412,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) if (attr->ia_valid & ATTR_GID) inode->i_gid = attr->ia_gid; mark_inode_dirty(inode); error = journal_end(&th, inode->i_sb); error = journal_end(&th); reiserfs_write_unlock(inode->i_sb); if (error) goto out; Loading
fs/reiserfs/journal.c +22 −21 Original line number Diff line number Diff line Loading @@ -83,8 +83,7 @@ #define COMMIT_NOW 2 /* end and commit this transaction */ #define WAIT 4 /* wait for the log blocks to hit the disk */ static int do_journal_end(struct reiserfs_transaction_handle *, struct super_block *, int flags); static int do_journal_end(struct reiserfs_transaction_handle *, int flags); static int flush_journal_list(struct super_block *s, struct reiserfs_journal_list *jl, int flushall); static int flush_commit_list(struct super_block *s, Loading Loading @@ -1920,7 +1919,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, if (!error && !(sb->s_flags & MS_RDONLY)) { /* end the current trans */ BUG_ON(!th->t_trans_id); do_journal_end(th, sb, FLUSH_ALL); do_journal_end(th, FLUSH_ALL); /* * make sure something gets logged to force Loading @@ -1932,7 +1931,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(&myth, sb, SB_BUFFER_WITH_SB(sb)); do_journal_end(&myth, sb, FLUSH_ALL); do_journal_end(&myth, FLUSH_ALL); flushed = 1; } } Loading @@ -1946,7 +1945,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(&myth, sb, SB_BUFFER_WITH_SB(sb)); do_journal_end(&myth, sb, FLUSH_ALL); do_journal_end(&myth, FLUSH_ALL); } } Loading Loading @@ -3101,9 +3100,9 @@ static int do_journal_begin_r(struct reiserfs_transaction_handle *th, /* someone might have ended the transaction while we joined */ if (old_trans_id != journal->j_trans_id) { retval = do_journal_end(&myth, sb, 0); retval = do_journal_end(&myth, 0); } else { retval = do_journal_end(&myth, sb, COMMIT_NOW); retval = do_journal_end(&myth, COMMIT_NOW); } if (retval) Loading Loading @@ -3173,7 +3172,7 @@ int reiserfs_end_persistent_transaction(struct reiserfs_transaction_handle *th) struct super_block *s = th->t_super; int ret = 0; if (th->t_trans_id) ret = journal_end(th, th->t_super); ret = journal_end(th); else ret = -EIO; if (th->t_refcount == 0) { Loading Loading @@ -3374,8 +3373,9 @@ int journal_mark_dirty(struct reiserfs_transaction_handle *th, return 0; } int journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb) int journal_end(struct reiserfs_transaction_handle *th) { struct super_block *sb = th->t_super; if (!current->journal_info && th->t_refcount > 1) reiserfs_warning(sb, "REISER-NESTING", "th NULL, refcount %d", th->t_refcount); Loading @@ -3402,7 +3402,7 @@ int journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb) } return 0; } else { return do_journal_end(th, sb, 0); return do_journal_end(th, 0); } } Loading Loading @@ -3511,9 +3511,9 @@ static int can_dirty(struct reiserfs_journal_cnode *cn) * syncs the commit blocks, but does not force the real buffers to disk * will wait until the current transaction is done/committed before returning */ int journal_end_sync(struct reiserfs_transaction_handle *th, struct super_block *sb) int journal_end_sync(struct reiserfs_transaction_handle *th) { struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); BUG_ON(!th->t_trans_id); Loading @@ -3524,7 +3524,7 @@ int journal_end_sync(struct reiserfs_transaction_handle *th, 1); journal_mark_dirty(th, sb, SB_BUFFER_WITH_SB(sb)); } return do_journal_end(th, sb, COMMIT_NOW | WAIT); return do_journal_end(th, COMMIT_NOW | WAIT); } /* writeback the pending async commits to disk */ Loading Loading @@ -3584,7 +3584,7 @@ void reiserfs_flush_old_commits(struct super_block *sb) * no sense to do an async commit so that kreiserfsd * can do it later */ do_journal_end(&th, sb, COMMIT_NOW | WAIT); do_journal_end(&th, COMMIT_NOW | WAIT); } } } Loading @@ -3604,8 +3604,7 @@ void reiserfs_flush_old_commits(struct super_block *sb) * Note, we can't allow the journal_end to proceed while there are still * writers in the log. */ static int check_journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb, int flags) static int check_journal_end(struct reiserfs_transaction_handle *th, int flags) { time_t now; Loading @@ -3613,6 +3612,7 @@ static int check_journal_end(struct reiserfs_transaction_handle *th, int commit_now = flags & COMMIT_NOW; int wait_on_commit = flags & WAIT; struct reiserfs_journal_list *jl; struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); BUG_ON(!th->t_trans_id); Loading Loading @@ -3864,11 +3864,11 @@ static int __commit_trans_jl(struct inode *inode, unsigned long id, reiserfs_prepare_for_journal(sb, SB_BUFFER_WITH_SB(sb), 1); journal_mark_dirty(&th, sb, SB_BUFFER_WITH_SB(sb)); ret = journal_end(&th, sb); ret = journal_end(&th); goto flush_commit_only; } ret = journal_end_sync(&th, sb); ret = journal_end_sync(&th); if (!ret) ret = 1; Loading Loading @@ -3974,9 +3974,9 @@ int reiserfs_prepare_for_journal(struct super_block *sb, * If the journal is aborted, we just clean up. Things like flushing * journal lists, etc just won't happen. */ static int do_journal_end(struct reiserfs_transaction_handle *th, struct super_block *sb, int flags) static int do_journal_end(struct reiserfs_transaction_handle *th, int flags) { struct super_block *sb = th->t_super; struct reiserfs_journal *journal = SB_JOURNAL(sb); struct reiserfs_journal_cnode *cn, *next, *jl_cn; struct reiserfs_journal_cnode *last_cn = NULL; Loading @@ -3998,6 +3998,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, BUG_ON(th->t_refcount > 1); BUG_ON(!th->t_trans_id); BUG_ON(!th->t_super); /* * protect flush_older_commits from doing mistakes if the Loading Loading @@ -4031,7 +4032,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, * not return 1 it tells us if we should continue with the * journal_end, or just return */ if (!check_journal_end(th, sb, flags)) { if (!check_journal_end(th, flags)) { reiserfs_schedule_old_flush(sb); wake_queued_writers(sb); reiserfs_async_progress_wait(sb); Loading
fs/reiserfs/namei.c +19 −19 Original line number Diff line number Diff line Loading @@ -672,7 +672,7 @@ static int reiserfs_create(struct inode *dir, struct dentry *dentry, umode_t mod int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -684,7 +684,7 @@ static int reiserfs_create(struct inode *dir, struct dentry *dentry, umode_t mod unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); Loading Loading @@ -755,7 +755,7 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -765,7 +765,7 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); Loading Loading @@ -847,7 +847,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode clear_nlink(inode); DEC_DIR_INODE_NLINK(dir); reiserfs_update_sd(&th, inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -859,7 +859,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); return retval; Loading Loading @@ -956,7 +956,7 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) /* prevent empty directory from getting lost */ add_save_link(&th, inode, 0 /* not truncate */ ); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_check_path(&path); out_rmdir: reiserfs_write_unlock(dir->i_sb); Loading @@ -969,7 +969,7 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) * release path if operation was not complete */ pathrelse(&path); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return err ? err : retval; } Loading Loading @@ -1059,14 +1059,14 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) /* prevent file from getting lost */ add_save_link(&th, inode, 0 /* not truncate */ ); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_check_path(&path); reiserfs_write_unlock(dir->i_sb); return retval; end_unlink: pathrelse(&path); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_check_path(&path); if (err) retval = err; Loading Loading @@ -1153,7 +1153,7 @@ static int reiserfs_symlink(struct inode *parent_dir, int err; drop_nlink(inode); reiserfs_update_sd(&th, inode); err = journal_end(&th, parent_dir->i_sb); err = journal_end(&th); if (err) retval = err; unlock_new_inode(inode); Loading @@ -1163,7 +1163,7 @@ static int reiserfs_symlink(struct inode *parent_dir, unlock_new_inode(inode); d_instantiate(dentry, inode); retval = journal_end(&th, parent_dir->i_sb); retval = journal_end(&th); out_failed: reiserfs_write_unlock(parent_dir->i_sb); return retval; Loading Loading @@ -1213,7 +1213,7 @@ static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, if (retval) { int err; drop_nlink(inode); err = journal_end(&th, dir->i_sb); err = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return err ? err : retval; } Loading @@ -1223,7 +1223,7 @@ static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, ihold(inode); d_instantiate(dentry, inode); retval = journal_end(&th, dir->i_sb); retval = journal_end(&th); reiserfs_write_unlock(dir->i_sb); return retval; } Loading Loading @@ -1385,7 +1385,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, "new entry is found, new inode == 0"); } } else if (retval) { int err = journal_end(&th, old_dir->i_sb); int err = journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return err ? err : retval; } Loading @@ -1412,7 +1412,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, &old_entry_path, &old_de)) != NAME_FOUND) { pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading @@ -1436,7 +1436,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, if (retval != NAME_FOUND_INVISIBLE && retval != NAME_FOUND) { pathrelse(&new_entry_path); pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading @@ -1454,7 +1454,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, pathrelse(&dot_dot_entry_path); pathrelse(&new_entry_path); pathrelse(&old_entry_path); journal_end(&th, old_dir->i_sb); journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return -EIO; } Loading Loading @@ -1601,7 +1601,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, reiserfs_update_sd(&th, new_dentry_inode); } retval = journal_end(&th, old_dir->i_sb); retval = journal_end(&th); reiserfs_write_unlock(old_dir->i_sb); return retval; } Loading
fs/reiserfs/reiserfs.h +2 −3 Original line number Diff line number Diff line Loading @@ -2914,9 +2914,8 @@ int journal_init(struct super_block *, const char *j_dev_name, int old_format, int journal_release(struct reiserfs_transaction_handle *, struct super_block *); int journal_release_error(struct reiserfs_transaction_handle *, struct super_block *); int journal_end(struct reiserfs_transaction_handle *, struct super_block *); int journal_end_sync(struct reiserfs_transaction_handle *, struct super_block *); int journal_end(struct reiserfs_transaction_handle *); int journal_end_sync(struct reiserfs_transaction_handle *); int journal_mark_freed(struct reiserfs_transaction_handle *, struct super_block *, b_blocknr_t blocknr); int journal_transaction_should_end(struct reiserfs_transaction_handle *, int); Loading