projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[linux-2.6-microblaze.git]
/
fs
/
ext4
/
inode.c
diff --git
a/fs/ext4/inode.c
b/fs/ext4/inode.c
index
34d7e07
..
b54b261
100644
(file)
--- a/
fs/ext4/inode.c
+++ b/
fs/ext4/inode.c
@@
-391,7
+391,7
@@
void ext4_da_update_reserve_space(struct inode *inode,
* inode's preallocations.
*/
if ((ei->i_reserved_data_blocks == 0) &&
* inode's preallocations.
*/
if ((ei->i_reserved_data_blocks == 0) &&
-
(atomic_read(&inode->i_writecount) == 0
))
+
!inode_is_open_for_write(inode
))
ext4_discard_preallocations(inode);
}
ext4_discard_preallocations(inode);
}
@@
-415,7
+415,7
@@
int ext4_issue_zeroout(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
{
int ret;
{
int ret;
- if (
ext4_encrypted_inode
(inode))
+ if (
IS_ENCRYPTED
(inode))
return fscrypt_zeroout_range(inode, lblk, pblk, len);
ret = sb_issue_zeroout(inode->i_sb, pblk, len, GFP_NOFS);
return fscrypt_zeroout_range(inode, lblk, pblk, len);
ret = sb_issue_zeroout(inode->i_sb, pblk, len, GFP_NOFS);
@@
-678,8
+678,6
@@
found:
if (flags & EXT4_GET_BLOCKS_ZERO &&
map->m_flags & EXT4_MAP_MAPPED &&
map->m_flags & EXT4_MAP_NEW) {
if (flags & EXT4_GET_BLOCKS_ZERO &&
map->m_flags & EXT4_MAP_MAPPED &&
map->m_flags & EXT4_MAP_NEW) {
- clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk,
- map->m_len);
ret = ext4_issue_zeroout(inode, map->m_lblk,
map->m_pblk, map->m_len);
if (ret) {
ret = ext4_issue_zeroout(inode, map->m_lblk,
map->m_pblk, map->m_len);
if (ret) {
@@
-1150,7
+1148,7
@@
int do_journal_get_write_access(handle_t *handle,
return ret;
}
return ret;
}
-#ifdef CONFIG_
EXT4_
FS_ENCRYPTION
+#ifdef CONFIG_FS_ENCRYPTION
static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len,
get_block_t *get_block)
{
static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len,
get_block_t *get_block)
{
@@
-1194,7
+1192,6
@@
static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len,
if (err)
break;
if (buffer_new(bh)) {
if (err)
break;
if (buffer_new(bh)) {
- clean_bdev_bh_alias(bh);
if (PageUptodate(page)) {
clear_buffer_new(bh);
set_buffer_uptodate(bh);
if (PageUptodate(page)) {
clear_buffer_new(bh);
set_buffer_uptodate(bh);
@@
-1217,8
+1214,7
@@
static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len,
(block_start < from || block_end > to)) {
ll_rw_block(REQ_OP_READ, 0, 1, &bh);
*wait_bh++ = bh;
(block_start < from || block_end > to)) {
ll_rw_block(REQ_OP_READ, 0, 1, &bh);
*wait_bh++ = bh;
- decrypt = ext4_encrypted_inode(inode) &&
- S_ISREG(inode->i_mode);
+ decrypt = IS_ENCRYPTED(inode) && S_ISREG(inode->i_mode);
}
}
/*
}
}
/*
@@
-1303,7
+1299,7
@@
retry_journal:
/* In case writeback began while the page was unlocked */
wait_for_stable_page(page);
/* In case writeback began while the page was unlocked */
wait_for_stable_page(page);
-#ifdef CONFIG_
EXT4_
FS_ENCRYPTION
+#ifdef CONFIG_FS_ENCRYPTION
if (ext4_should_dioread_nolock(inode))
ret = ext4_block_write_begin(page, pos, len,
ext4_get_block_unwritten);
if (ext4_should_dioread_nolock(inode))
ret = ext4_block_write_begin(page, pos, len,
ext4_get_block_unwritten);
@@
-2490,10
+2486,6
@@
static int mpage_map_one_extent(handle_t *handle, struct mpage_da_data *mpd)
}
BUG_ON(map->m_len == 0);
}
BUG_ON(map->m_len == 0);
- if (map->m_flags & EXT4_MAP_NEW) {
- clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk,
- map->m_len);
- }
return 0;
}
return 0;
}
@@
-2836,12
+2828,12
@@
retry:
goto unplug;
}
ret = mpage_prepare_extent_to_map(&mpd);
goto unplug;
}
ret = mpage_prepare_extent_to_map(&mpd);
+ /* Unlock pages we didn't use */
+ mpage_release_unused_pages(&mpd, false);
/* Submit prepared bio */
ext4_io_submit(&mpd.io_submit);
ext4_put_io_end_defer(mpd.io_submit.io_end);
mpd.io_submit.io_end = NULL;
/* Submit prepared bio */
ext4_io_submit(&mpd.io_submit);
ext4_put_io_end_defer(mpd.io_submit.io_end);
mpd.io_submit.io_end = NULL;
- /* Unlock pages we didn't use */
- mpage_release_unused_pages(&mpd, false);
if (ret < 0)
goto unplug;
if (ret < 0)
goto unplug;
@@
-2909,10
+2901,11
@@
retry:
handle = NULL;
mpd.do_map = 0;
}
handle = NULL;
mpd.do_map = 0;
}
- /* Submit prepared bio */
- ext4_io_submit(&mpd.io_submit);
/* Unlock pages we didn't use */
mpage_release_unused_pages(&mpd, give_up_on_write);
/* Unlock pages we didn't use */
mpage_release_unused_pages(&mpd, give_up_on_write);
+ /* Submit prepared bio */
+ ext4_io_submit(&mpd.io_submit);
+
/*
* Drop our io_end reference we got from init. We have
* to be careful and use deferred io_end finishing if
/*
* Drop our io_end reference we got from init. We have
* to be careful and use deferred io_end finishing if
@@
-3105,7
+3098,7
@@
retry_journal:
/* In case writeback began while the page was unlocked */
wait_for_stable_page(page);
/* In case writeback began while the page was unlocked */
wait_for_stable_page(page);
-#ifdef CONFIG_
EXT4_
FS_ENCRYPTION
+#ifdef CONFIG_FS_ENCRYPTION
ret = ext4_block_write_begin(page, pos, len,
ext4_da_get_block_prep);
#else
ret = ext4_block_write_begin(page, pos, len,
ext4_da_get_block_prep);
#else
@@
-3880,8
+3873,8
@@
static ssize_t ext4_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
loff_t offset = iocb->ki_pos;
ssize_t ret;
loff_t offset = iocb->ki_pos;
ssize_t ret;
-#ifdef CONFIG_
EXT4_
FS_ENCRYPTION
- if (
ext4_encrypted_inode
(inode) && S_ISREG(inode->i_mode))
+#ifdef CONFIG_FS_ENCRYPTION
+ if (
IS_ENCRYPTED
(inode) && S_ISREG(inode->i_mode))
return 0;
#endif
return 0;
#endif
@@
-4065,8
+4058,7
@@
static int __ext4_block_zero_page_range(handle_t *handle,
/* Uhhuh. Read error. Complain and punt. */
if (!buffer_uptodate(bh))
goto unlock;
/* Uhhuh. Read error. Complain and punt. */
if (!buffer_uptodate(bh))
goto unlock;
- if (S_ISREG(inode->i_mode) &&
- ext4_encrypted_inode(inode)) {
+ if (S_ISREG(inode->i_mode) && IS_ENCRYPTED(inode)) {
/* We expect the key to be set. */
BUG_ON(!fscrypt_has_encryption_key(inode));
BUG_ON(blocksize != PAGE_SIZE);
/* We expect the key to be set. */
BUG_ON(!fscrypt_has_encryption_key(inode));
BUG_ON(blocksize != PAGE_SIZE);
@@
-4142,7
+4134,7
@@
static int ext4_block_truncate_page(handle_t *handle,
struct inode *inode = mapping->host;
/* If we are processing an encrypted inode during orphan list handling */
struct inode *inode = mapping->host;
/* If we are processing an encrypted inode during orphan list handling */
- if (
ext4_encrypted_inode
(inode) && !fscrypt_has_encryption_key(inode))
+ if (
IS_ENCRYPTED
(inode) && !fscrypt_has_encryption_key(inode))
return 0;
blocksize = inode->i_sb->s_blocksize;
return 0;
blocksize = inode->i_sb->s_blocksize;
@@
-4722,7
+4714,7
@@
static bool ext4_should_use_dax(struct inode *inode)
return false;
if (ext4_has_inline_data(inode))
return false;
return false;
if (ext4_has_inline_data(inode))
return false;
- if (ext4_
encrypted_inode(inode
))
+ if (ext4_
test_inode_flag(inode, EXT4_INODE_ENCRYPT
))
return false;
return true;
}
return false;
return true;
}
@@
-5072,7
+5064,7
@@
struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
ret = -EFSCORRUPTED;
goto bad_inode;
}
ret = -EFSCORRUPTED;
goto bad_inode;
}
- if (
ext4_encrypted_inode
(inode)) {
+ if (
IS_ENCRYPTED
(inode)) {
inode->i_op = &ext4_encrypted_symlink_inode_operations;
ext4_set_aops(inode);
} else if (ext4_inode_is_fast_symlink(inode)) {
inode->i_op = &ext4_encrypted_symlink_inode_operations;
ext4_set_aops(inode);
} else if (ext4_inode_is_fast_symlink(inode)) {
@@
-5351,7
+5343,6
@@
static int ext4_do_update_inode(handle_t *handle,
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
if (err)
goto out_brelse;
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
if (err)
goto out_brelse;
- ext4_update_dynamic_rev(sb);
ext4_set_feature_large_file(sb);
ext4_handle_sync(handle);
err = ext4_handle_dirty_super(handle, sb);
ext4_set_feature_large_file(sb);
ext4_handle_sync(handle);
err = ext4_handle_dirty_super(handle, sb);
@@
-6002,7
+5993,7
@@
int ext4_expand_extra_isize(struct inode *inode,
ext4_write_lock_xattr(inode, &no_expand);
ext4_write_lock_xattr(inode, &no_expand);
- BUFFER_TRACE(iloc
.
bh, "get_write_access");
+ BUFFER_TRACE(iloc
->
bh, "get_write_access");
error = ext4_journal_get_write_access(handle, iloc->bh);
if (error) {
brelse(iloc->bh);
error = ext4_journal_get_write_access(handle, iloc->bh);
if (error) {
brelse(iloc->bh);