Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: fdmanana@kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 3/3] btrfs: use btrfs_inode local variable at btrfs_page_mkwrite()
Date: Wed, 9 Jul 2025 19:34:52 +0930	[thread overview]
Message-ID: <c10339a8-cb80-4fba-803d-797f51d9313d@gmx.com> (raw)
In-Reply-To: <6aefca8792028e0544de96b2d7f5b34ea836d1c7.1752050704.git.fdmanana@suse.com>



在 2025/7/9 18:23, fdmanana@kernel.org 写道:
> From: Filipe Manana <fdmanana@suse.com>
> 
> Most of the time we want to use the btrfs_inode, so change the local inode
> variable to be a btrfs_inode instead of a vfs inode, reducing verbosity
> by eleminating a lot of BTRFS_I() calls.
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>

Reviewed-by: Qu Wenruo <wqu@suse.com>
[...]
> -		if (btrfs_check_nocow_lock(BTRFS_I(inode), page_start,
> -					   &write_bytes, false) <= 0)
> +		if (btrfs_check_nocow_lock(inode, page_start, &write_bytes, false) <= 0)

I guess we are no longer limited by 80 chars line limit anymore?

What would be the new limit? 100 from checkpatch or something slightly 
lower like 90?

Thanks,
Qu

>   			goto out_noreserve;
>   
>   		if (write_bytes < reserved_space)
> @@ -1876,11 +1875,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   
>   		only_release_metadata = true;
>   	}
> -	ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode), reserved_space,
> +	ret = btrfs_delalloc_reserve_metadata(inode, reserved_space,
>   					      reserved_space, false);
>   	if (ret < 0) {
>   		if (!only_release_metadata)
> -			btrfs_free_reserved_data_space(BTRFS_I(inode), data_reserved,
> +			btrfs_free_reserved_data_space(inode, data_reserved,
>   						       page_start, reserved_space);
>   		goto out_noreserve;
>   	}
> @@ -1889,11 +1888,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   	if (ret < 0)
>   		goto out;
>   again:
> -	down_read(&BTRFS_I(inode)->i_mmap_lock);
> +	down_read(&inode->i_mmap_lock);
>   	folio_lock(folio);
> -	size = i_size_read(inode);
> +	size = i_size_read(&inode->vfs_inode);
>   
> -	if ((folio->mapping != inode->i_mapping) ||
> +	if ((folio->mapping != inode->vfs_inode.i_mapping) ||
>   	    (page_start >= size)) {
>   		/* Page got truncated out from underneath us. */
>   		goto out_unlock;
> @@ -1911,11 +1910,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   	 * We can't set the delalloc bits if there are pending ordered
>   	 * extents.  Drop our locks and wait for them to finish.
>   	 */
> -	ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), page_start, fsize);
> +	ordered = btrfs_lookup_ordered_range(inode, page_start, fsize);
>   	if (ordered) {
>   		btrfs_unlock_extent(io_tree, page_start, page_end, &cached_state);
>   		folio_unlock(folio);
> -		up_read(&BTRFS_I(inode)->i_mmap_lock);
> +		up_read(&inode->i_mmap_lock);
>   		btrfs_start_ordered_extent(ordered);
>   		btrfs_put_ordered_extent(ordered);
>   		goto again;
> @@ -1926,7 +1925,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   		if (reserved_space < fsize) {
>   			end = page_start + reserved_space - 1;
>   			if (!only_release_metadata)
> -				btrfs_delalloc_release_space(BTRFS_I(inode),
> +				btrfs_delalloc_release_space(inode,
>   							     data_reserved, end + 1,
>   							     fsize - reserved_space,
>   							     true);
> @@ -1944,8 +1943,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   			       EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING |
>   			       EXTENT_DEFRAG, &cached_state);
>   
> -	ret = btrfs_set_extent_delalloc(BTRFS_I(inode), page_start, end, 0,
> -					&cached_state);
> +	ret = btrfs_set_extent_delalloc(inode, page_start, end, 0, &cached_state);
>   	if (ret < 0) {
>   		btrfs_unlock_extent(io_tree, page_start, page_end, &cached_state);
>   		goto out_unlock;
> @@ -1964,38 +1962,38 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
>   	btrfs_folio_set_dirty(fs_info, folio, page_start, end + 1 - page_start);
>   	btrfs_folio_set_uptodate(fs_info, folio, page_start, end + 1 - page_start);
>   
> -	btrfs_set_inode_last_sub_trans(BTRFS_I(inode));
> +	btrfs_set_inode_last_sub_trans(inode);
>   
>   	if (only_release_metadata)
>   		btrfs_set_extent_bit(io_tree, page_start, end, EXTENT_NORESERVE,
>   				     &cached_state);
>   
>   	btrfs_unlock_extent(io_tree, page_start, page_end, &cached_state);
> -	up_read(&BTRFS_I(inode)->i_mmap_lock);
> +	up_read(&inode->i_mmap_lock);
>   
> -	btrfs_delalloc_release_extents(BTRFS_I(inode), fsize);
> +	btrfs_delalloc_release_extents(inode, fsize);
>   	if (only_release_metadata)
> -		btrfs_check_nocow_unlock(BTRFS_I(inode));
> -	sb_end_pagefault(inode->i_sb);
> +		btrfs_check_nocow_unlock(inode);
> +	sb_end_pagefault(inode->vfs_inode.i_sb);
>   	extent_changeset_free(data_reserved);
>   	return VM_FAULT_LOCKED;
>   
>   out_unlock:
>   	folio_unlock(folio);
> -	up_read(&BTRFS_I(inode)->i_mmap_lock);
> +	up_read(&inode->i_mmap_lock);
>   out:
> -	btrfs_delalloc_release_extents(BTRFS_I(inode), fsize);
> +	btrfs_delalloc_release_extents(inode, fsize);
>   	if (only_release_metadata)
> -		btrfs_delalloc_release_metadata(BTRFS_I(inode), reserved_space, true);
> +		btrfs_delalloc_release_metadata(inode, reserved_space, true);
>   	else
> -		btrfs_delalloc_release_space(BTRFS_I(inode), data_reserved,
> -					     page_start, reserved_space, true);
> +		btrfs_delalloc_release_space(inode, data_reserved, page_start,
> +					     reserved_space, true);
>   	extent_changeset_free(data_reserved);
>   out_noreserve:
>   	if (only_release_metadata)
> -		btrfs_check_nocow_unlock(BTRFS_I(inode));
> +		btrfs_check_nocow_unlock(inode);
>   
> -	sb_end_pagefault(inode->i_sb);
> +	sb_end_pagefault(inode->vfs_inode.i_sb);
>   
>   	if (ret < 0)
>   		return vmf_error(ret);


  reply	other threads:[~2025-07-09 10:05 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-09  8:53 [PATCH 0/3] btrfs: fix mmap writes for NOCOW files/extents fdmanana
2025-07-09  8:53 ` [PATCH 1/3] btrfs: fix -ENOSPC mmap write failure on " fdmanana
2025-07-09 10:02   ` Qu Wenruo
2025-07-09 10:36     ` Filipe Manana
2025-07-09  8:53 ` [PATCH 2/3] btrfs: use variable for io_tree when clearing range in btrfs_page_mkwrite() fdmanana
2025-07-09 10:02   ` Qu Wenruo
2025-07-09  8:53 ` [PATCH 3/3] btrfs: use btrfs_inode local variable at btrfs_page_mkwrite() fdmanana
2025-07-09 10:04   ` Qu Wenruo [this message]
2025-07-09 10:39     ` Filipe Manana
2025-07-09 11:13 ` [PATCH v2 0/3] btrfs: fix mmap writes for NOCOW files/extents fdmanana
2025-07-09 11:13   ` [PATCH v2 1/3] btrfs: fix -ENOSPC mmap write failure on " fdmanana
2025-07-09 11:13   ` [PATCH v2 2/3] btrfs: use variable for io_tree when clearing range in btrfs_page_mkwrite() fdmanana
2025-07-09 11:13   ` [PATCH v2 3/3] btrfs: use btrfs_inode local variable at btrfs_page_mkwrite() fdmanana
2025-07-09 11:45 ` [PATCH v3 0/3] btrfs: fix mmap writes for NOCOW files/extents fdmanana
2025-07-09 11:45   ` [PATCH v3 1/3] btrfs: fix -ENOSPC mmap write failure on " fdmanana
2025-07-09 11:45   ` [PATCH v3 2/3] btrfs: use variable for io_tree when clearing range in btrfs_page_mkwrite() fdmanana
2025-07-09 11:45   ` [PATCH v3 3/3] btrfs: use btrfs_inode local variable at btrfs_page_mkwrite() fdmanana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c10339a8-cb80-4fba-803d-797f51d9313d@gmx.com \
    --to=quwenruo.btrfs@gmx.com \
    --cc=fdmanana@kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox