All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] misc cleanup patches
@ 2021-07-04 12:04 Anand Jain
  2021-07-04 12:04 ` [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs Anand Jain
  2021-07-04 12:04 ` [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro Anand Jain
  0 siblings, 2 replies; 9+ messages in thread
From: Anand Jain @ 2021-07-04 12:04 UTC (permalink / raw)
  To: linux-btrfs

These patches are independent, not related.
They are miscellaneous cleanup patches.

Anand Jain (2):
  btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs
  btrfs: change btrfs_io_bio_init inline function to macro

 fs/btrfs/extent-tree.c | 10 +++++-----
 fs/btrfs/extent_io.c   |  5 +----
 2 files changed, 6 insertions(+), 9 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs
  2021-07-04 12:04 [PATCH 0/2] misc cleanup patches Anand Jain
@ 2021-07-04 12:04 ` Anand Jain
  2021-07-07 15:06   ` David Sterba
  2021-07-04 12:04 ` [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro Anand Jain
  1 sibling, 1 reply; 9+ messages in thread
From: Anand Jain @ 2021-07-04 12:04 UTC (permalink / raw)
  To: linux-btrfs

Drop variable
  struct list_head *devices
and add new variable
  struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;

so that fs_devices is used at two locations within btrfs_trim_fs() function
and also helps to access fs_devices->devices.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 fs/btrfs/extent-tree.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 268ce58d4569..d5925bebd379 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -5950,9 +5950,9 @@ static int btrfs_trim_free_extents(struct btrfs_device *device, u64 *trimmed)
  */
 int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
 {
+	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
 	struct btrfs_block_group *cache = NULL;
 	struct btrfs_device *device;
-	struct list_head *devices;
 	u64 group_trimmed;
 	u64 range_end = U64_MAX;
 	u64 start;
@@ -6016,9 +6016,9 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
 		btrfs_warn(fs_info,
 			"failed to trim %llu block group(s), last error %d",
 			bg_failed, bg_ret);
-	mutex_lock(&fs_info->fs_devices->device_list_mutex);
-	devices = &fs_info->fs_devices->devices;
-	list_for_each_entry(device, devices, dev_list) {
+
+	mutex_lock(&fs_devices->device_list_mutex);
+	list_for_each_entry(device, &fs_devices->devices, dev_list) {
 		if (test_bit(BTRFS_DEV_STATE_MISSING, &device->dev_state))
 			continue;
 
@@ -6031,7 +6031,7 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
 
 		trimmed += group_trimmed;
 	}
-	mutex_unlock(&fs_info->fs_devices->device_list_mutex);
+	mutex_unlock(&fs_devices->device_list_mutex);
 
 	if (dev_failed)
 		btrfs_warn(fs_info,
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-04 12:04 [PATCH 0/2] misc cleanup patches Anand Jain
  2021-07-04 12:04 ` [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs Anand Jain
@ 2021-07-04 12:04 ` Anand Jain
  2021-07-05 14:05   ` Nikolay Borisov
  1 sibling, 1 reply; 9+ messages in thread
From: Anand Jain @ 2021-07-04 12:04 UTC (permalink / raw)
  To: linux-btrfs

btrfs_io_bio_init() is a single line static inline function and initializes
part of allocated struct btrfs_io_bio. Make it macro so that preprocessor
handles it and preserve the original comments of the function.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 fs/btrfs/extent_io.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 9e81d25dea70..8ed07cffb4a4 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3110,10 +3110,7 @@ static void end_bio_extent_readpage(struct bio *bio)
  * new bio by bio_alloc_bioset as it does not initialize the bytes outside of
  * 'bio' because use of __GFP_ZERO is not supported.
  */
-static inline void btrfs_io_bio_init(struct btrfs_io_bio *btrfs_bio)
-{
-	memset(btrfs_bio, 0, offsetof(struct btrfs_io_bio, bio));
-}
+#define btrfs_io_bio_init(bbio)	memset(bbio, 0, offsetof(struct btrfs_io_bio, bio))
 
 /*
  * The following helpers allocate a bio. As it's backed by a bioset, it'll
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-04 12:04 ` [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro Anand Jain
@ 2021-07-05 14:05   ` Nikolay Borisov
  2021-07-06  4:34     ` Anand Jain
  0 siblings, 1 reply; 9+ messages in thread
From: Nikolay Borisov @ 2021-07-05 14:05 UTC (permalink / raw)
  To: Anand Jain, linux-btrfs



On 4.07.21 г. 15:04, Anand Jain wrote:
> btrfs_io_bio_init() is a single line static inline function and initializes
> part of allocated struct btrfs_io_bio. Make it macro so that preprocessor
> handles it and preserve the original comments of the function.
> 
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
>  fs/btrfs/extent_io.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index 9e81d25dea70..8ed07cffb4a4 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -3110,10 +3110,7 @@ static void end_bio_extent_readpage(struct bio *bio)
>   * new bio by bio_alloc_bioset as it does not initialize the bytes outside of
>   * 'bio' because use of __GFP_ZERO is not supported.
>   */
> -static inline void btrfs_io_bio_init(struct btrfs_io_bio *btrfs_bio)
> -{
> -	memset(btrfs_bio, 0, offsetof(struct btrfs_io_bio, bio));
> -}
> +#define btrfs_io_bio_init(bbio)	memset(bbio, 0, offsetof(struct btrfs_io_bio, bio))
>  
>  /*
>   * The following helpers allocate a bio. As it's backed by a bioset, it'll
> 


What do we gain by this change? The compiler is perfectly able to inline
btrfs_io_bio_init.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-05 14:05   ` Nikolay Borisov
@ 2021-07-06  4:34     ` Anand Jain
  2021-07-06  5:28       ` Nikolay Borisov
  0 siblings, 1 reply; 9+ messages in thread
From: Anand Jain @ 2021-07-06  4:34 UTC (permalink / raw)
  To: Nikolay Borisov, linux-btrfs



On 5/7/21 10:05 pm, Nikolay Borisov wrote:
> 
> 
> On 4.07.21 г. 15:04, Anand Jain wrote:
>> btrfs_io_bio_init() is a single line static inline function and initializes
>> part of allocated struct btrfs_io_bio. Make it macro so that preprocessor
>> handles it and preserve the original comments of the function.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>>   fs/btrfs/extent_io.c | 5 +----
>>   1 file changed, 1 insertion(+), 4 deletions(-)
>>
>> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
>> index 9e81d25dea70..8ed07cffb4a4 100644
>> --- a/fs/btrfs/extent_io.c
>> +++ b/fs/btrfs/extent_io.c
>> @@ -3110,10 +3110,7 @@ static void end_bio_extent_readpage(struct bio *bio)
>>    * new bio by bio_alloc_bioset as it does not initialize the bytes outside of
>>    * 'bio' because use of __GFP_ZERO is not supported.
>>    */
>> -static inline void btrfs_io_bio_init(struct btrfs_io_bio *btrfs_bio)
>> -{
>> -	memset(btrfs_bio, 0, offsetof(struct btrfs_io_bio, bio));
>> -}
>> +#define btrfs_io_bio_init(bbio)	memset(bbio, 0, offsetof(struct btrfs_io_bio, bio))
>>   
>>   /*
>>    * The following helpers allocate a bio. As it's backed by a bioset, it'll
>>
> 
> 
> What do we gain by this change? The compiler is perfectly able to inline
> btrfs_io_bio_init.
> 

The gain is macro is guaranteed to be inline-ed. A function with the 
inline prefix isn't.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-06  4:34     ` Anand Jain
@ 2021-07-06  5:28       ` Nikolay Borisov
  2021-07-06  6:14         ` Johannes Thumshirn
  0 siblings, 1 reply; 9+ messages in thread
From: Nikolay Borisov @ 2021-07-06  5:28 UTC (permalink / raw)
  To: Anand Jain, linux-btrfs



On 6.07.21 г. 7:34, Anand Jain wrote:
> 
> 
> On 5/7/21 10:05 pm, Nikolay Borisov wrote:
>>
>>
>> On 4.07.21 г. 15:04, Anand Jain wrote:
>>> btrfs_io_bio_init() is a single line static inline function and
>>> initializes
>>> part of allocated struct btrfs_io_bio. Make it macro so that
>>> preprocessor
>>> handles it and preserve the original comments of the function.
>>>
>>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>>> ---
>>>   fs/btrfs/extent_io.c | 5 +----
>>>   1 file changed, 1 insertion(+), 4 deletions(-)
>>>
>>> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
>>> index 9e81d25dea70..8ed07cffb4a4 100644
>>> --- a/fs/btrfs/extent_io.c
>>> +++ b/fs/btrfs/extent_io.c
>>> @@ -3110,10 +3110,7 @@ static void end_bio_extent_readpage(struct bio
>>> *bio)
>>>    * new bio by bio_alloc_bioset as it does not initialize the bytes
>>> outside of
>>>    * 'bio' because use of __GFP_ZERO is not supported.
>>>    */
>>> -static inline void btrfs_io_bio_init(struct btrfs_io_bio *btrfs_bio)
>>> -{
>>> -    memset(btrfs_bio, 0, offsetof(struct btrfs_io_bio, bio));
>>> -}
>>> +#define btrfs_io_bio_init(bbio)    memset(bbio, 0, offsetof(struct
>>> btrfs_io_bio, bio))
>>>     /*
>>>    * The following helpers allocate a bio. As it's backed by a
>>> bioset, it'll
>>>
>>
>>
>> What do we gain by this change? The compiler is perfectly able to inline
>> btrfs_io_bio_init.
>>
> 
> The gain is macro is guaranteed to be inline-ed. A function with the
> inline prefix isn't.
> 

In this particular case it's guaranteed that the function will be inlined.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-06  5:28       ` Nikolay Borisov
@ 2021-07-06  6:14         ` Johannes Thumshirn
  2021-07-07 15:00           ` David Sterba
  0 siblings, 1 reply; 9+ messages in thread
From: Johannes Thumshirn @ 2021-07-06  6:14 UTC (permalink / raw)
  To: Nikolay Borisov, Anand Jain, linux-btrfs

On 06/07/2021 07:29, Nikolay Borisov wrote:
>> The gain is macro is guaranteed to be inline-ed. A function with the
>> inline prefix isn't.
>>
> In this particular case it's guaranteed that the function will be inlined.
> 

And we also get additional type safety from the function, which the macro
doesn't provide.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro
  2021-07-06  6:14         ` Johannes Thumshirn
@ 2021-07-07 15:00           ` David Sterba
  0 siblings, 0 replies; 9+ messages in thread
From: David Sterba @ 2021-07-07 15:00 UTC (permalink / raw)
  To: Johannes Thumshirn; +Cc: Nikolay Borisov, Anand Jain, linux-btrfs

On Tue, Jul 06, 2021 at 06:14:38AM +0000, Johannes Thumshirn wrote:
> On 06/07/2021 07:29, Nikolay Borisov wrote:
> >> The gain is macro is guaranteed to be inline-ed. A function with the
> >> inline prefix isn't.
> >>
> > In this particular case it's guaranteed that the function will be inlined.
> > 
> 
> And we also get additional type safety from the function, which the macro
> doesn't provide.

Yeah, using static inlines instead of macros is preferred when they're
reasonably simple, like in this case.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs
  2021-07-04 12:04 ` [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs Anand Jain
@ 2021-07-07 15:06   ` David Sterba
  0 siblings, 0 replies; 9+ messages in thread
From: David Sterba @ 2021-07-07 15:06 UTC (permalink / raw)
  To: Anand Jain; +Cc: linux-btrfs

On Sun, Jul 04, 2021 at 08:04:57PM +0800, Anand Jain wrote:
> Drop variable
>   struct list_head *devices
> and add new variable
>   struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
> 
> so that fs_devices is used at two locations within btrfs_trim_fs() function
> and also helps to access fs_devices->devices.
> 
> Signed-off-by: Anand Jain <anand.jain@oracle.com>

Added to misc-next, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-07-07 15:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04 12:04 [PATCH 0/2] misc cleanup patches Anand Jain
2021-07-04 12:04 ` [PATCH 1/2] btrfs: cleanup fs_devices pointer usage in btrfs_trim_fs Anand Jain
2021-07-07 15:06   ` David Sterba
2021-07-04 12:04 ` [PATCH 2/2] btrfs: change btrfs_io_bio_init inline function to macro Anand Jain
2021-07-05 14:05   ` Nikolay Borisov
2021-07-06  4:34     ` Anand Jain
2021-07-06  5:28       ` Nikolay Borisov
2021-07-06  6:14         ` Johannes Thumshirn
2021-07-07 15:00           ` David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.