diff options
Diffstat (limited to 'fs/ext4/inode.c')
| -rw-r--r-- | fs/ext4/inode.c | 22 | 
1 files changed, 10 insertions, 12 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 43775a6ca505..d3f581ced672 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1569,7 +1569,7 @@ static void mpage_release_unused_pages(struct mpage_da_data *mpd,  			if (folio->index < mpd->first_page)  				continue; -			if (folio->index + folio_nr_pages(folio) - 1 > end) +			if (folio_next_index(folio) - 1 > end)  				continue;  			BUG_ON(!folio_test_locked(folio));  			BUG_ON(folio_test_writeback(folio)); @@ -2455,7 +2455,7 @@ static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd)  			if (mpd->map.m_len == 0)  				mpd->first_page = folio->index; -			mpd->next_page = folio->index + folio_nr_pages(folio); +			mpd->next_page = folio_next_index(folio);  			/*  			 * Writeout when we cannot modify metadata is simple.  			 * Just submit the page. For data=journal mode we @@ -3986,7 +3986,7 @@ int ext4_punch_hole(struct file *file, loff_t offset, loff_t length)  	if (IS_SYNC(inode))  		ext4_handle_sync(handle); -	inode->i_mtime = inode->i_ctime = current_time(inode); +	inode->i_mtime = inode_set_ctime_current(inode);  	ret2 = ext4_mark_inode_dirty(handle, inode);  	if (unlikely(ret2))  		ret = ret2; @@ -4146,7 +4146,7 @@ out_stop:  	if (inode->i_nlink)  		ext4_orphan_del(handle, inode); -	inode->i_mtime = inode->i_ctime = current_time(inode); +	inode->i_mtime = inode_set_ctime_current(inode);  	err2 = ext4_mark_inode_dirty(handle, inode);  	if (unlikely(err2 && !err))  		err = err2; @@ -4249,7 +4249,7 @@ static int ext4_fill_raw_inode(struct inode *inode, struct ext4_inode *raw_inode  	}  	raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); -	EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode); +	EXT4_INODE_SET_CTIME(inode, raw_inode);  	EXT4_INODE_SET_XTIME(i_mtime, inode, raw_inode);  	EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode);  	EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode); @@ -4858,7 +4858,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,  		}  	} -	EXT4_INODE_GET_XTIME(i_ctime, inode, raw_inode); +	EXT4_INODE_GET_CTIME(inode, raw_inode);  	EXT4_INODE_GET_XTIME(i_mtime, inode, raw_inode);  	EXT4_INODE_GET_XTIME(i_atime, inode, raw_inode);  	EXT4_EINODE_GET_XTIME(i_crtime, ei, raw_inode); @@ -4981,7 +4981,7 @@ static void __ext4_update_other_inode_time(struct super_block *sb,  		spin_unlock(&inode->i_lock);  		spin_lock(&ei->i_raw_lock); -		EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode); +		EXT4_INODE_SET_CTIME(inode, raw_inode);  		EXT4_INODE_SET_XTIME(i_mtime, inode, raw_inode);  		EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode);  		ext4_inode_csum_set(inode, raw_inode, ei); @@ -5376,10 +5376,8 @@ int ext4_setattr(struct mnt_idmap *idmap, struct dentry *dentry,  			 * Update c/mtime on truncate up, ext4_truncate() will  			 * update c/mtime in shrink case below  			 */ -			if (!shrink) { -				inode->i_mtime = current_time(inode); -				inode->i_ctime = inode->i_mtime; -			} +			if (!shrink) +				inode->i_mtime = inode_set_ctime_current(inode);  			if (shrink)  				ext4_fc_track_range(handle, inode, @@ -5537,7 +5535,7 @@ int ext4_getattr(struct mnt_idmap *idmap, const struct path *path,  				  STATX_ATTR_NODUMP |  				  STATX_ATTR_VERITY); -	generic_fillattr(idmap, inode, stat); +	generic_fillattr(idmap, request_mask, inode, stat);  	return 0;  }  | 
