public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
@ 2026-02-20 20:41 Jim Harris
  2026-02-21 15:19 ` Horst Birthelmer
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Jim Harris @ 2026-02-20 20:41 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: linux-fsdevel, linux-kernel, jim.harris, mgurtovoy, ksztyber

From: Jim Harris <jim.harris@nvidia.com>

When O_CREAT is set, we don't need the lookup. The lookup doesn't
harm anything, but it's an extra FUSE operation that's not required.

Signed-off-by: Jim Harris <jim.harris@nvidia.com>
---
 fs/fuse/dir.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index f25ee47822ad..35f65d49ed2a 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -895,7 +895,8 @@ static int fuse_create_open(struct mnt_idmap *idmap, struct inode *dir,
 		goto out_err;
 	}
 	kfree(forget);
-	d_instantiate(entry, inode);
+	d_drop(entry);
+	d_splice_alias(inode, entry);
 	entry->d_time = epoch;
 	fuse_change_entry_timeout(entry, &outentry);
 	fuse_dir_changed(dir);
@@ -936,14 +937,15 @@ static int fuse_atomic_open(struct inode *dir, struct dentry *entry,
 	if (fuse_is_bad(dir))
 		return -EIO;
 
-	if (d_in_lookup(entry)) {
-		struct dentry *res = fuse_lookup(dir, entry, 0);
-		if (res || d_really_is_positive(entry))
-			return finish_no_open(file, res);
-	}
+	if (!(flags & O_CREAT)) {
+		if (d_in_lookup(entry)) {
+			struct dentry *res = fuse_lookup(dir, entry, 0);
 
-	if (!(flags & O_CREAT))
+			if (res || d_really_is_positive(entry))
+				return finish_no_open(file, res);
+		}
 		return finish_no_open(file, NULL);
+	}
 
 	/* Only creates */
 	file->f_mode |= FMODE_CREATED;
-- 
2.43.0


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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-20 20:41 [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set Jim Harris
@ 2026-02-21 15:19 ` Horst Birthelmer
  2026-02-23 15:09   ` Miklos Szeredi
  2026-02-23 14:57 ` Miklos Szeredi
  2026-02-23 16:41 ` Bernd Schubert
  2 siblings, 1 reply; 13+ messages in thread
From: Horst Birthelmer @ 2026-02-21 15:19 UTC (permalink / raw)
  To: Jim Harris
  Cc: Miklos Szeredi, linux-fsdevel, linux-kernel, mgurtovoy, ksztyber

Hi Jim,

On Fri, Feb 20, 2026 at 01:41:02PM -0700, Jim Harris wrote:
> From: Jim Harris <jim.harris@nvidia.com>
> 
> When O_CREAT is set, we don't need the lookup. The lookup doesn't
> harm anything, but it's an extra FUSE operation that's not required.
> 
> Signed-off-by: Jim Harris <jim.harris@nvidia.com>
> ---
>  fs/fuse/dir.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
> index f25ee47822ad..35f65d49ed2a 100644
> --- a/fs/fuse/dir.c
> +++ b/fs/fuse/dir.c
> @@ -895,7 +895,8 @@ static int fuse_create_open(struct mnt_idmap *idmap, struct inode *dir,
>  		goto out_err;
>  	}
>  	kfree(forget);
> -	d_instantiate(entry, inode);
> +	d_drop(entry);
> +	d_splice_alias(inode, entry);
>  	entry->d_time = epoch;
>  	fuse_change_entry_timeout(entry, &outentry);
>  	fuse_dir_changed(dir);
> @@ -936,14 +937,15 @@ static int fuse_atomic_open(struct inode *dir, struct dentry *entry,
>  	if (fuse_is_bad(dir))
>  		return -EIO;
>  
> -	if (d_in_lookup(entry)) {
> -		struct dentry *res = fuse_lookup(dir, entry, 0);
> -		if (res || d_really_is_positive(entry))
> -			return finish_no_open(file, res);
> -	}
> +	if (!(flags & O_CREAT)) {
> +		if (d_in_lookup(entry)) {
> +			struct dentry *res = fuse_lookup(dir, entry, 0);
>  
> -	if (!(flags & O_CREAT))
> +			if (res || d_really_is_positive(entry))
> +				return finish_no_open(file, res);
> +		}
>  		return finish_no_open(file, NULL);
> +	}
>  
>  	/* Only creates */
>  	file->f_mode |= FMODE_CREATED;
> -- 
> 2.43.0
> 
> 

I have been looking at that code lately a lot since I was planning to
replace it with a compound.
I'm not entirely convinced that your proposal is the right direction. 
I would involve O_EXCL as well, since that lookup could actually 
help in that case.

Take a look at what Miklos wrote here:
https://lore.kernel.org/linux-fsdevel/CAJfpegsDxsMsyfP4a_5H1q91xFtwcEdu9-WBnzWKwjUSrPNdmw@mail.gmail.com/

Cheers,
Horst

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-20 20:41 [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set Jim Harris
  2026-02-21 15:19 ` Horst Birthelmer
@ 2026-02-23 14:57 ` Miklos Szeredi
  2026-02-23 16:41 ` Bernd Schubert
  2 siblings, 0 replies; 13+ messages in thread
From: Miklos Szeredi @ 2026-02-23 14:57 UTC (permalink / raw)
  To: Jim Harris; +Cc: linux-fsdevel, linux-kernel, mgurtovoy, ksztyber

On Fri, 20 Feb 2026 at 21:41, Jim Harris <jim.harris@nvidia.com> wrote:
>
> From: Jim Harris <jim.harris@nvidia.com>
>
> When O_CREAT is set, we don't need the lookup. The lookup doesn't
> harm anything, but it's an extra FUSE operation that's not required.
>
> Signed-off-by: Jim Harris <jim.harris@nvidia.com>
> ---
>  fs/fuse/dir.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
> index f25ee47822ad..35f65d49ed2a 100644
> --- a/fs/fuse/dir.c
> +++ b/fs/fuse/dir.c
> @@ -895,7 +895,8 @@ static int fuse_create_open(struct mnt_idmap *idmap, struct inode *dir,
>                 goto out_err;
>         }
>         kfree(forget);
> -       d_instantiate(entry, inode);
> +       d_drop(entry);
> +       d_splice_alias(inode, entry);
>         entry->d_time = epoch;
>         fuse_change_entry_timeout(entry, &outentry);
>         fuse_dir_changed(dir);
> @@ -936,14 +937,15 @@ static int fuse_atomic_open(struct inode *dir, struct dentry *entry,
>         if (fuse_is_bad(dir))
>                 return -EIO;
>
> -       if (d_in_lookup(entry)) {
> -               struct dentry *res = fuse_lookup(dir, entry, 0);
> -               if (res || d_really_is_positive(entry))
> -                       return finish_no_open(file, res);
> -       }
> +       if (!(flags & O_CREAT)) {
> +               if (d_in_lookup(entry)) {
> +                       struct dentry *res = fuse_lookup(dir, entry, 0);
>
> -       if (!(flags & O_CREAT))
> +                       if (res || d_really_is_positive(entry))
> +                               return finish_no_open(file, res);
> +               }
>                 return finish_no_open(file, NULL);
> +       }
>
>         /* Only creates */
>         file->f_mode |= FMODE_CREATED;

Now this is not necessarily true.  Setting FMODE_CREATED in case of an
existing file will have the effect of not checking permissions to open
(think open(path, O_CREAT | O_RDWR, 0444)).

Sad fact is that the same thing could happen with current code: a file
created on a remote client during the window between LOOKUP and
CREATE.

To prevent that with the current protocol we'd need to add O_EXCL and
retry on -EEXIST.

Better fix would be to add a flag to the CREATE reply indicating if
the file was created or not.

Thanks,
Miklos

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-21 15:19 ` Horst Birthelmer
@ 2026-02-23 15:09   ` Miklos Szeredi
  2026-02-23 15:36     ` Bernd Schubert
  0 siblings, 1 reply; 13+ messages in thread
From: Miklos Szeredi @ 2026-02-23 15:09 UTC (permalink / raw)
  To: Horst Birthelmer
  Cc: Jim Harris, linux-fsdevel, linux-kernel, mgurtovoy, ksztyber,
	Bernd Schubert

On Sat, 21 Feb 2026 at 16:19, Horst Birthelmer <horst@birthelmer.de> wrote:

> I have been looking at that code lately a lot since I was planning to
> replace it with a compound.
> I'm not entirely convinced that your proposal is the right direction.
> I would involve O_EXCL as well, since that lookup could actually
> help in that case.
>
> Take a look at what Miklos wrote here:
> https://lore.kernel.org/linux-fsdevel/CAJfpegsDxsMsyfP4a_5H1q91xFtwcEdu9-WBnzWKwjUSrPNdmw@mail.gmail.com/

Bernd had actual patches, that got sidetracked unfortunately:

https://lore.kernel.org/all/20231023183035.11035-1-bschubert@ddn.com/

Thanks,
Miklos

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 15:09   ` Miklos Szeredi
@ 2026-02-23 15:36     ` Bernd Schubert
  2026-02-23 15:53       ` Miklos Szeredi
  0 siblings, 1 reply; 13+ messages in thread
From: Bernd Schubert @ 2026-02-23 15:36 UTC (permalink / raw)
  To: Miklos Szeredi, Horst Birthelmer
  Cc: Jim Harris, linux-fsdevel, linux-kernel, mgurtovoy, ksztyber,
	Luis Henriques



On 2/23/26 16:09, Miklos Szeredi wrote:
> On Sat, 21 Feb 2026 at 16:19, Horst Birthelmer <horst@birthelmer.de> wrote:
> 
>> I have been looking at that code lately a lot since I was planning to
>> replace it with a compound.
>> I'm not entirely convinced that your proposal is the right direction.
>> I would involve O_EXCL as well, since that lookup could actually
>> help in that case.
>>
>> Take a look at what Miklos wrote here:
>> https://lore.kernel.org/linux-fsdevel/CAJfpegsDxsMsyfP4a_5H1q91xFtwcEdu9-WBnzWKwjUSrPNdmw@mail.gmail.com/
> 
> Bernd had actual patches, that got sidetracked unfortunately:
> 
> https://lore.kernel.org/all/20231023183035.11035-1-bschubert@ddn.com/


After the discussion about LOOKUO_HANDLE my impression was actually that
we want to use compounds for the atomic open.


Thanks,
Bernd

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 15:36     ` Bernd Schubert
@ 2026-02-23 15:53       ` Miklos Szeredi
  2026-02-23 16:43         ` Luis Henriques
                           ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Miklos Szeredi @ 2026-02-23 15:53 UTC (permalink / raw)
  To: Bernd Schubert
  Cc: Horst Birthelmer, Jim Harris, linux-fsdevel, linux-kernel,
	mgurtovoy, ksztyber, Luis Henriques

On Mon, 23 Feb 2026 at 16:37, Bernd Schubert <bernd@bsbernd.com> wrote:

> After the discussion about LOOKUO_HANDLE my impression was actually that
> we want to use compounds for the atomic open.

I think we want to introduce an atomic operation that does a lookup +
an optional mknod, lets call this LOOKUP_CREATE_FH, this would return
a flag indicating whether the file was created or if it existed prior
to the operation.

Then, instead of the current CREATE operation there would be a
compound with LOOKUP_CREATE_FH + OPEN.

Does that make sense?

Thanks,
Miklos

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-20 20:41 [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set Jim Harris
  2026-02-21 15:19 ` Horst Birthelmer
  2026-02-23 14:57 ` Miklos Szeredi
@ 2026-02-23 16:41 ` Bernd Schubert
  2 siblings, 0 replies; 13+ messages in thread
From: Bernd Schubert @ 2026-02-23 16:41 UTC (permalink / raw)
  To: Jim Harris, Miklos Szeredi
  Cc: linux-fsdevel, linux-kernel, mgurtovoy, ksztyber


On 2/20/26 21:41, Jim Harris wrote:
> From: Jim Harris <jim.harris@nvidia.com>
> 
> When O_CREAT is set, we don't need the lookup. The lookup doesn't
> harm anything, but it's an extra FUSE operation that's not required.

Problem is that it is a change of behavior - it might cause issues for
some fuse server implementations that expect that a node-id was obtained
before open of an existing file is done.


Thanks,
Bernd

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 15:53       ` Miklos Szeredi
@ 2026-02-23 16:43         ` Luis Henriques
  2026-02-23 16:48         ` Bernd Schubert
  2026-02-23 18:55         ` Horst Birthelmer
  2 siblings, 0 replies; 13+ messages in thread
From: Luis Henriques @ 2026-02-23 16:43 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Bernd Schubert, Horst Birthelmer, Jim Harris, linux-fsdevel,
	linux-kernel, mgurtovoy, ksztyber

On Mon, Feb 23 2026, Miklos Szeredi wrote:

> On Mon, 23 Feb 2026 at 16:37, Bernd Schubert <bernd@bsbernd.com> wrote:
>
>> After the discussion about LOOKUO_HANDLE my impression was actually that
>> we want to use compounds for the atomic open.
>
> I think we want to introduce an atomic operation that does a lookup +
> an optional mknod, lets call this LOOKUP_CREATE_FH, this would return
> a flag indicating whether the file was created or if it existed prior
> to the operation.
>
> Then, instead of the current CREATE operation there would be a
> compound with LOOKUP_CREATE_FH + OPEN.
>
> Does that make sense?

FWIW, what I've been doing is something slightly different.  I have been
working on implementing MKOBJ_HANDLE+STATX+OPEN.  And the plan was to rely
on the compound flags, leaving it to user-space to handle the atomicity
(e.g. MKOBJ_HANDLE would fail if O_EXCL was set).

I was hoping to share a draft of this very soon, though it's still
incomplete.  For example, not all required compound operations are already
implemented, most notably readdirplus!

Cheers,
-- 
Luís

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 15:53       ` Miklos Szeredi
  2026-02-23 16:43         ` Luis Henriques
@ 2026-02-23 16:48         ` Bernd Schubert
  2026-02-23 18:55         ` Horst Birthelmer
  2 siblings, 0 replies; 13+ messages in thread
From: Bernd Schubert @ 2026-02-23 16:48 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Horst Birthelmer, Jim Harris, linux-fsdevel, linux-kernel,
	mgurtovoy, ksztyber, Luis Henriques



On 2/23/26 16:53, Miklos Szeredi wrote:
> On Mon, 23 Feb 2026 at 16:37, Bernd Schubert <bernd@bsbernd.com> wrote:
> 
>> After the discussion about LOOKUO_HANDLE my impression was actually that
>> we want to use compounds for the atomic open.
> 
> I think we want to introduce an atomic operation that does a lookup +
> an optional mknod, lets call this LOOKUP_CREATE_FH, this would return
> a flag indicating whether the file was created or if it existed prior
> to the operation.
> 
> Then, instead of the current CREATE operation there would be a
> compound with LOOKUP_CREATE_FH + OPEN.
> 
> Does that make sense?

Fine with me, but I need to process a bit if we want to that lookup to
return attributes or if it should be LOOKUP_CREATE_FH + OPEN + GETATTR.
Currently in the wrong time zone to do that today and also not much time
in general this week.


Thanks,
Bernd

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

* Re: Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 15:53       ` Miklos Szeredi
  2026-02-23 16:43         ` Luis Henriques
  2026-02-23 16:48         ` Bernd Schubert
@ 2026-02-23 18:55         ` Horst Birthelmer
  2026-02-24 15:33           ` Miklos Szeredi
  2 siblings, 1 reply; 13+ messages in thread
From: Horst Birthelmer @ 2026-02-23 18:55 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Bernd Schubert, Jim Harris, linux-fsdevel, linux-kernel,
	mgurtovoy, ksztyber, Luis Henriques

On Mon, Feb 23, 2026 at 04:53:33PM +0100, Miklos Szeredi wrote:
> On Mon, 23 Feb 2026 at 16:37, Bernd Schubert <bernd@bsbernd.com> wrote:
> 
> > After the discussion about LOOKUO_HANDLE my impression was actually that
> > we want to use compounds for the atomic open.
> 
> I think we want to introduce an atomic operation that does a lookup +
> an optional mknod, lets call this LOOKUP_CREATE_FH, this would return
> a flag indicating whether the file was created or if it existed prior
> to the operation.
> 
> Then, instead of the current CREATE operation there would be a
> compound with LOOKUP_CREATE_FH + OPEN.
> 
> Does that make sense?

What is wrong with a compound doing LOOKUP + MKNOD + OPEN?
If the fuse server knows how to process that 'group' atomically
in one big step it will do the right thing, 
if not, we will call those in series and sort out the data 
in kernel afterwards.

If we preserve all flags and the real results we can do pretty
much exactly the same thing that is done at the moment with just
one call to user space.

That was actually what I was experimenting with.

The MKNOD in the middle is optional depending on the O_CREAT flag.

> 
> Thanks,
> Miklos

Cheers,
Horst

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

* Re: Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-23 18:55         ` Horst Birthelmer
@ 2026-02-24 15:33           ` Miklos Szeredi
  2026-02-26 23:11             ` Jim Harris
  0 siblings, 1 reply; 13+ messages in thread
From: Miklos Szeredi @ 2026-02-24 15:33 UTC (permalink / raw)
  To: Horst Birthelmer
  Cc: Bernd Schubert, Jim Harris, linux-fsdevel, linux-kernel,
	mgurtovoy, ksztyber, Luis Henriques

On Mon, 23 Feb 2026 at 19:55, Horst Birthelmer <horst@birthelmer.de> wrote:

> What is wrong with a compound doing LOOKUP + MKNOD + OPEN?
> If the fuse server knows how to process that 'group' atomically
> in one big step it will do the right thing,
> if not, we will call those in series and sort out the data
> in kernel afterwards.
>
> If we preserve all flags and the real results we can do pretty
> much exactly the same thing that is done at the moment with just
> one call to user space.
>
> That was actually what I was experimenting with.
>
> The MKNOD in the middle is optional depending on the O_CREAT flag.

Okay, I won't stop you experimenting.

My thinking is that it's simpler as a separate op (dir handle and name
are the same for LOOKUP and MKNOD).   But adding this special "stop if
error or non-regular, else skip create if positive" dependency would
also work.

Thanks,
Miklos

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

* Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-24 15:33           ` Miklos Szeredi
@ 2026-02-26 23:11             ` Jim Harris
  2026-02-27  7:59               ` Horst Birthelmer
  0 siblings, 1 reply; 13+ messages in thread
From: Jim Harris @ 2026-02-26 23:11 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Horst Birthelmer, Bernd Schubert, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, Max Gurtovoy, Konrad Sztyber,
	Luis Henriques



> On Feb 24, 2026, at 8:33 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> 
> External email: Use caution opening links or attachments
> 
> 
> On Mon, 23 Feb 2026 at 19:55, Horst Birthelmer <horst@birthelmer.de> wrote:
> 
>> What is wrong with a compound doing LOOKUP + MKNOD + OPEN?
>> If the fuse server knows how to process that 'group' atomically
>> in one big step it will do the right thing,
>> if not, we will call those in series and sort out the data
>> in kernel afterwards.
>> 
>> If we preserve all flags and the real results we can do pretty
>> much exactly the same thing that is done at the moment with just
>> one call to user space.
>> 
>> That was actually what I was experimenting with.
>> 
>> The MKNOD in the middle is optional depending on the O_CREAT flag.
> 
> Okay, I won't stop you experimenting.
> 
> My thinking is that it's simpler as a separate op (dir handle and name
> are the same for LOOKUP and MKNOD).   But adding this special "stop if
> error or non-regular, else skip create if positive" dependency would
> also work.
> 
> Thanks,
> Miklos

Thanks for the feedback everyone. Sounds like compounds will be the way forward to optimize this path, once they are ready.

Do we think compounds will be land for 7.1? Or later?

Best regards,

Jim





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

* Re: Re: [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set
  2026-02-26 23:11             ` Jim Harris
@ 2026-02-27  7:59               ` Horst Birthelmer
  0 siblings, 0 replies; 13+ messages in thread
From: Horst Birthelmer @ 2026-02-27  7:59 UTC (permalink / raw)
  To: Jim Harris
  Cc: Miklos Szeredi, Bernd Schubert, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, Max Gurtovoy, Konrad Sztyber,
	Luis Henriques

On Thu, Feb 26, 2026 at 11:11:22PM +0000, Jim Harris wrote:
> 
> 
> > On Feb 24, 2026, at 8:33 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> > 
> > External email: Use caution opening links or attachments
> > 
> > 
> > On Mon, 23 Feb 2026 at 19:55, Horst Birthelmer <horst@birthelmer.de> wrote:
> > 
> >> What is wrong with a compound doing LOOKUP + MKNOD + OPEN?
> >> If the fuse server knows how to process that 'group' atomically
> >> in one big step it will do the right thing,
> >> if not, we will call those in series and sort out the data
> >> in kernel afterwards.
> >> 
> >> If we preserve all flags and the real results we can do pretty
> >> much exactly the same thing that is done at the moment with just
> >> one call to user space.
> >> 
> >> That was actually what I was experimenting with.
> >> 
> >> The MKNOD in the middle is optional depending on the O_CREAT flag.
> > 
> > Okay, I won't stop you experimenting.
> > 
> > My thinking is that it's simpler as a separate op (dir handle and name
> > are the same for LOOKUP and MKNOD).   But adding this special "stop if
> > error or non-regular, else skip create if positive" dependency would
> > also work.
> > 
> > Thanks,
> > Miklos
> 
> Thanks for the feedback everyone. Sounds like compounds will be the way forward to optimize this path, once they are ready.
> 
> Do we think compounds will be land for 7.1? Or later?

I honestly have no idea. I'm going as fast as I can.
BTW, the post you are responding to, wasn't meant to reject the patch IMHO, but the change in behavior could actually
become a real problem.

I have the same fear for the compound of open+getattr, which actually solves a bug, but could be trouble for
people making the wrong assumptions in their fuse servers.

> 
> Best regards,
> 
> Jim
> 

Cheers,
Horst

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

end of thread, other threads:[~2026-02-27  7:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-20 20:41 [PATCH] fuse: skip lookup during atomic_open() when O_CREAT is set Jim Harris
2026-02-21 15:19 ` Horst Birthelmer
2026-02-23 15:09   ` Miklos Szeredi
2026-02-23 15:36     ` Bernd Schubert
2026-02-23 15:53       ` Miklos Szeredi
2026-02-23 16:43         ` Luis Henriques
2026-02-23 16:48         ` Bernd Schubert
2026-02-23 18:55         ` Horst Birthelmer
2026-02-24 15:33           ` Miklos Szeredi
2026-02-26 23:11             ` Jim Harris
2026-02-27  7:59               ` Horst Birthelmer
2026-02-23 14:57 ` Miklos Szeredi
2026-02-23 16:41 ` Bernd Schubert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox