mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull ext2, udf, reiserfs fixes from Jan Kara: "Several ext2, udf, and reiserfs fixes" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: ext2: Fix memory leak when truncate races ext2_get_blocks reiserfs: fix race in prealloc discard reiserfs: don't preallocate blocks for extended attributes udf: Convert udf_disk_stamp_to_time() to use mktime64() udf: Use time64_to_tm for timestamp conversion udf: Fix deadlock between writeback and udf_setsize() udf: Use i_size_read() in udf_adinicb_writepage() udf: Fix races with i_size changes during readpage udf: Remove unused UDF_DEFAULT_BLOCKSIZE
This commit is contained in:
commit
19c6e12c07
6 changed files with 36 additions and 95 deletions
|
|
@ -513,9 +513,17 @@ static void __discard_prealloc(struct reiserfs_transaction_handle *th,
|
|||
"inode has negative prealloc blocks count.");
|
||||
#endif
|
||||
while (ei->i_prealloc_count > 0) {
|
||||
reiserfs_free_prealloc_block(th, inode, ei->i_prealloc_block);
|
||||
ei->i_prealloc_block++;
|
||||
b_blocknr_t block_to_free;
|
||||
|
||||
/*
|
||||
* reiserfs_free_prealloc_block can drop the write lock,
|
||||
* which could allow another caller to free the same block.
|
||||
* We can protect against it by modifying the prealloc
|
||||
* state before calling it.
|
||||
*/
|
||||
block_to_free = ei->i_prealloc_block++;
|
||||
ei->i_prealloc_count--;
|
||||
reiserfs_free_prealloc_block(th, inode, block_to_free);
|
||||
dirty = 1;
|
||||
}
|
||||
if (dirty)
|
||||
|
|
@ -1128,7 +1136,7 @@ static int determine_prealloc_size(reiserfs_blocknr_hint_t * hint)
|
|||
hint->prealloc_size = 0;
|
||||
|
||||
if (!hint->formatted_node && hint->preallocate) {
|
||||
if (S_ISREG(hint->inode->i_mode)
|
||||
if (S_ISREG(hint->inode->i_mode) && !IS_PRIVATE(hint->inode)
|
||||
&& hint->inode->i_size >=
|
||||
REISERFS_SB(hint->th->t_super)->s_alloc_options.
|
||||
preallocmin * hint->inode->i_sb->s_blocksize)
|
||||
|
|
|
|||
Loading…
Reference in a new issue