diff options
| -rw-r--r-- | fs/btrfs/compression.c | 2 | ||||
| -rw-r--r-- | fs/btrfs/disk-io.c | 2 | ||||
| -rw-r--r-- | fs/btrfs/tree-log.c | 4 | ||||
| -rw-r--r-- | fs/btrfs/volumes.c | 1 | 
4 files changed, 5 insertions, 4 deletions
| diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 9a023ae0f98b..30d82cdf128c 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -352,7 +352,7 @@ static void end_compressed_bio_write(struct bio *bio)  	btrfs_record_physical_zoned(inode, cb->start, bio);  	btrfs_writepage_endio_finish_ordered(BTRFS_I(inode), NULL,  			cb->start, cb->start + cb->len - 1, -			bio->bi_status == BLK_STS_OK); +			!cb->errors);  	end_compressed_writeback(inode, cb);  	/* note, our inode could be gone now */ diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index b117dd3b8172..a59ab7b9aea0 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -209,7 +209,7 @@ void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb,  static void csum_tree_block(struct extent_buffer *buf, u8 *result)  {  	struct btrfs_fs_info *fs_info = buf->fs_info; -	const int num_pages = fs_info->nodesize >> PAGE_SHIFT; +	const int num_pages = num_extent_pages(buf);  	const int first_page_part = min_t(u32, PAGE_SIZE, fs_info->nodesize);  	SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);  	char *kaddr; diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 9fd0348be7f5..e6430ac9bbe8 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -6503,8 +6503,8 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,  	 * if this inode hasn't been logged and directory we're renaming it  	 * from hasn't been logged, we don't need to log it  	 */ -	if (inode->logged_trans < trans->transid && -	    (!old_dir || old_dir->logged_trans < trans->transid)) +	if (!inode_logged(trans, inode) && +	    (!old_dir || !inode_logged(trans, old_dir)))  		return;  	/* diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 1e4d43ffe38b..70f94b75f25a 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -1078,6 +1078,7 @@ static void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices,  		if (test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state)) {  			list_del_init(&device->dev_alloc_list);  			clear_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state); +			fs_devices->rw_devices--;  		}  		list_del_init(&device->dev_list);  		fs_devices->num_devices--; |