public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.cz>
To: Goffredo Baroncelli <kreijack@libero.it>
Cc: linux-btrfs@vger.kernel.org, Goffredo Baroncelli <kreijack@inwind.it>
Subject: Re: [PATCH 0/9][V2][btrfs-progs] Remove unused dirstream variable
Date: Tue, 20 Feb 2024 13:01:26 +0100	[thread overview]
Message-ID: <20240220120126.GC355@twin.jikos.cz> (raw)
In-Reply-To: <cover.1707423567.git.kreijack@inwind.it>

On Thu, Feb 08, 2024 at 09:19:18PM +0100, Goffredo Baroncelli wrote:
> From: Goffredo Baroncelli <kreijack@inwind.it>
> 
> For historical reason, the helpers [btrfs_]open_[file_or_]dir() work with
> directory returning the 'fd' and a 'dirstream' variable returned by
> opendir(3).
> 
> If the path is a file, the 'fd' is computed from open(2) and dirstream is 
> set to NULL. If the path is a directory, first the directory is opened by 
> opendir(3), then the 'fd' is computed using dirfd(3).
> However the 'dirstream' returned by opendir(3) is left open until 'fd'
> is not needed anymore.
> 
> In near every case the 'dirstream' variable is not used. Only 'fd' is used.
> 
> A call to close_file_or_dir() freed both 'fd' and 'dirstream'.
> 
> Aim of this patch set is to getrid of this complexity; when the path of
> a directory is passed, the fd is get directly using open(path, O_RDONLY):
> so we don't need to use readdir(3) and to maintain the not used variable
> 'dirstream'.
> 
> So each call of a legacy [btrfs_]open_[file_or_]dir() helper is
> replaced by a call to the new btrfs_open_[file_or_]dir_fd() functions.
> These functions return only the file descriptor.
> 
> Also close_file_or_dir() is not needed anymore.
> 
> The first patch, introduces the new helpers; the last patch removed the
> unused older helpers. The intermediate patches updated the code.
> 
> The 3rd patch updated also the add_seen_fsid() function. Before it
> stored the dirstream variable. But now it is not needed anymore.
> So we removed a parameter of the functions and a field in the structure.
> 
> In the 8th patch, the only occurrences where 'dirstream' is used was
> corrected: the dirstream is computed using fdopendir(3), and the cleanup
> is updated according.
> 
> The results is:
> - removed 7 functions
> - add 4 new functions
> - removed ~100 lines
> - removed 44 occurrences of an unused 'dirstream' variable.
> 
> 
> Changelog:
> 
> 09/dec/2023: V1: first issue
> 08/feb/2024: V2
> 	- rebased over 6.7
> 	- swapped the tests order inside the btrfs_open_fd2() function
> 	  to prevent the failure of the test 003-fi-resize-args
> 	- removed two new occurences of open_file_or_dir() inside
> 	  cmd_scrub_limit() (introduced after V1 pateches set)
> 
> 
> BR
> G.Baroncelli
> 
> 
> Goffredo Baroncelli (9):
>   Killing dirstream: add helpers
>   Killing dirstream: replace btrfs_open_dir with btrfs_open_dir_fd
>   Killing dirstream: replace btrfs_open_dir with btrfs_open_dir_fd
>   Killing dirstream: replace open_path_or_dev_mnt with btrfs_open_mnt_fd
>   Killing dirstream: replace open_file_or_dir3 with btrfs_open_fd2
>   Killing dirstream: replace btrfs_open_file_or_dir with
>     btrfs_open_file_or_dir_fd
>   Killing dirstream: replace open_file_or_dir with btrfs_open_fd2
>   Killing dirstream: remove open_file_or_dir3 from du_add_file
>   Killing dirstream: remove unused functions

Added to devel with some updates, thanks.

      parent reply	other threads:[~2024-02-20 12:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-08 20:19 [PATCH 0/9][V2][btrfs-progs] Remove unused dirstream variable Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 1/9] Killing dirstream: add helpers Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 2/9] Killing dirstream: replace btrfs_open_dir with btrfs_open_dir_fd Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 3/9] " Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 4/9] Killing dirstream: replace open_path_or_dev_mnt with btrfs_open_mnt_fd Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 5/9] Killing dirstream: replace open_file_or_dir3 with btrfs_open_fd2 Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 6/9] Killing dirstream: replace btrfs_open_file_or_dir with btrfs_open_file_or_dir_fd Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 7/9] Killing dirstream: replace open_file_or_dir with btrfs_open_fd2 Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 8/9] Killing dirstream: remove open_file_or_dir3 from du_add_file Goffredo Baroncelli
2024-02-08 20:19 ` [PATCH 9/9] Killing dirstream: remove unused functions Goffredo Baroncelli
2024-02-20 12:01 ` David Sterba [this message]

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=20240220120126.GC355@twin.jikos.cz \
    --to=dsterba@suse.cz \
    --cc=kreijack@inwind.it \
    --cc=kreijack@libero.it \
    --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