mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 04:14:49 +08:00
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull isofs and reiserfs fixes from Jan Kara: "A reiserfs and an isofs fix. They arrived after I sent you my first pull request and I don't want to delay them unnecessarily till rc2" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: isofs: Fix infinite looping over CE entries reiserfs: destroy allocated commit workqueue
This commit is contained in:
commit
31f48fc8f2
@ -30,6 +30,7 @@ struct rock_state {
|
|||||||
int cont_size;
|
int cont_size;
|
||||||
int cont_extent;
|
int cont_extent;
|
||||||
int cont_offset;
|
int cont_offset;
|
||||||
|
int cont_loops;
|
||||||
struct inode *inode;
|
struct inode *inode;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -73,6 +74,9 @@ static void init_rock_state(struct rock_state *rs, struct inode *inode)
|
|||||||
rs->inode = inode;
|
rs->inode = inode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Maximum number of Rock Ridge continuation entries */
|
||||||
|
#define RR_MAX_CE_ENTRIES 32
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns 0 if the caller should continue scanning, 1 if the scan must end
|
* Returns 0 if the caller should continue scanning, 1 if the scan must end
|
||||||
* and -ve on error.
|
* and -ve on error.
|
||||||
@ -105,6 +109,8 @@ static int rock_continue(struct rock_state *rs)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
ret = -EIO;
|
ret = -EIO;
|
||||||
|
if (++rs->cont_loops >= RR_MAX_CE_ENTRIES)
|
||||||
|
goto out;
|
||||||
bh = sb_bread(rs->inode->i_sb, rs->cont_extent);
|
bh = sb_bread(rs->inode->i_sb, rs->cont_extent);
|
||||||
if (bh) {
|
if (bh) {
|
||||||
memcpy(rs->buffer, bh->b_data + rs->cont_offset,
|
memcpy(rs->buffer, bh->b_data + rs->cont_offset,
|
||||||
|
@ -2172,6 +2172,9 @@ error_unlocked:
|
|||||||
reiserfs_write_unlock(s);
|
reiserfs_write_unlock(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sbi->commit_wq)
|
||||||
|
destroy_workqueue(sbi->commit_wq);
|
||||||
|
|
||||||
cancel_delayed_work_sync(&REISERFS_SB(s)->old_work);
|
cancel_delayed_work_sync(&REISERFS_SB(s)->old_work);
|
||||||
|
|
||||||
reiserfs_free_bitmap_cache(s);
|
reiserfs_free_bitmap_cache(s);
|
||||||
|
Loading…
Reference in New Issue
Block a user