diff mbox series

btrfs: Use list_last_entry in add_falloc_range

Message ID 20210531073703.41498-1-nborisov@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: Use list_last_entry in add_falloc_range | expand

Commit Message

Nikolay Borisov May 31, 2021, 7:37 a.m. UTC
Instead of calling list_entry with head->prev simply call
list_last_entry which makes it obvious which member of the list is
being referred. This allows to remove the extra 'prev' pointer.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
 fs/btrfs/file.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

David Sterba May 31, 2021, 6:45 p.m. UTC | #1
On Mon, May 31, 2021 at 10:37:03AM +0300, Nikolay Borisov wrote:
> Instead of calling list_entry with head->prev simply call
> list_last_entry which makes it obvious which member of the list is
> being referred. This allows to remove the extra 'prev' pointer.
> 
> Signed-off-by: Nikolay Borisov <nborisov@suse.com>

Added to misc-next, thanks.
> ---
>  fs/btrfs/file.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
> index e910cc2cd45c..2b28a3daa5a9 100644
> --- a/fs/btrfs/file.c
> +++ b/fs/btrfs/file.c
> @@ -3034,7 +3034,6 @@ struct falloc_range {
>   */
>  static int add_falloc_range(struct list_head *head, u64 start, u64 len)
>  {
> -	struct falloc_range *prev = NULL;
>  	struct falloc_range *range = NULL;
>  
>  	if (list_empty(head))
> @@ -3044,9 +3043,9 @@ static int add_falloc_range(struct list_head *head, u64 start, u64 len)
>  	 * As fallocate iterate by bytenr order, we only need to check
>  	 * the last range.
>  	 */
> -	prev = list_entry(head->prev, struct falloc_range, list);
> -	if (prev->start + prev->len == start) {
> -		prev->len += len;
> +	range = list_last_entry(head, struct falloc_range, list);
> +	if (range->start + range->len == start) {
> +		range->len += len;
>  		return 0;
>  	}
>  insert:

The function could be restructured a bit to get rid of the insert:
label, like:

	if (!list_empty(head)) {
		range = list_last(...)
		if (range->start ...) {
			return;
		}
	}
	range = kmalloc(...)
	<the rest>
diff mbox series

Patch

diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index e910cc2cd45c..2b28a3daa5a9 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -3034,7 +3034,6 @@  struct falloc_range {
  */
 static int add_falloc_range(struct list_head *head, u64 start, u64 len)
 {
-	struct falloc_range *prev = NULL;
 	struct falloc_range *range = NULL;
 
 	if (list_empty(head))
@@ -3044,9 +3043,9 @@  static int add_falloc_range(struct list_head *head, u64 start, u64 len)
 	 * As fallocate iterate by bytenr order, we only need to check
 	 * the last range.
 	 */
-	prev = list_entry(head->prev, struct falloc_range, list);
-	if (prev->start + prev->len == start) {
-		prev->len += len;
+	range = list_last_entry(head, struct falloc_range, list);
+	if (range->start + range->len == start) {
+		range->len += len;
 		return 0;
 	}
 insert: