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.
prev 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