Re: [PATCH v2] Btrfs: set leave_spinning in btrfs_get_extent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 23, 2018 at 07:41:05AM +0800, Liu Bo wrote:
> Unless it's going to read inline extents from btree leaf to page,
> btrfs_get_extent won't sleep during the period of holding path lock.
> 
> This sets leave_spinning at first and sets path to blocking mode right
> before reading inline extent if that's the case.  The benefit is that a
> path in spinning mode typically has less impact (faster) on waiters
> rather than that in blocking mode.
> 
> Also fixes the misalignment of the prototype, which is too trivial for
> a single patch.
> 
> Signed-off-by: Liu Bo <bo.liu@xxxxxxxxxxxxxxxxx>
> ---
> v2: send out the correct patch.
> 
>  fs/btrfs/ctree.h |  4 ++--
>  fs/btrfs/inode.c | 14 +++++++++++---
>  2 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index 1aeed3c0e949..00e506de70ba 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -3177,8 +3177,8 @@ int btrfs_merge_bio_hook(struct page *page, unsigned long offset,
>  struct inode *btrfs_iget(struct super_block *s, struct btrfs_key *location,
>  			 struct btrfs_root *root, int *was_new);
>  struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
> -		struct page *page, size_t pg_offset,
> -		u64 start, u64 end, int create);
> +				    struct page *page, size_t pg_offset,
> +				    u64 start, u64 end, int create);

Please don't add unrelated changes.

>  int btrfs_update_inode(struct btrfs_trans_handle *trans,
>  			      struct btrfs_root *root,
>  			      struct inode *inode);
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 10e86f7b5398..31d43355f052 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -6787,9 +6787,9 @@ static noinline int uncompress_inline(struct btrfs_path *path,
>   * This also copies inline extents directly into the page.
>   */
>  struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
> -		struct page *page,
> -	    size_t pg_offset, u64 start, u64 len,
> -		int create)
> +				    struct page *page,
> +				    size_t pg_offset, u64 start, u64 len,
> +				    int create)

Ok, this looks ugly and the reformatting makes sense, both declaration
and prototype, but please send it as a separate patch.



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux