From: Andrew W Elble <aweits@rit.edu>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: <linux-nfs@vger.kernel.org>, <jlayton@kernel.org>
Subject: Re: [PATCH v2] nfsd: fix error handling in nfs4_set_delegation()
Date: Mon, 14 May 2018 07:31:53 -0400 [thread overview]
Message-ID: <m21see79sm.fsf@discipline.rit.edu> (raw)
In-Reply-To: <20180511213005.GF3765@fieldses.org> (J. Bruce Fields's message of "Fri, 11 May 2018 17:30:05 -0400")
>> + /*
>> + * This delegation is doomed, tell the recall logic
>> + * that it's being destroyed here.
>> + */
>> +
>> + if (status) {
>> + dp->dl_time++;
>> + list_del_init(&dp->dl_recall_lru);
>> + dp->dl_stid.sc_type = NFS4_CLOSED_DELEG_STID;
>> + }
>
> I'm trying to figure out if this fixes an actual bug. The code should
> be able to deal with a callback on an already unhashed delegation, so I
> think you're right it would at worst just be an unnecessary recall.
But an 'normal' unhashed delegation would have a persistent refcount,
this one would not. If the recall code gets a hold of it, it will
place it on nn->del_recall_lru, and then free it in nfsd4_cb_recall_release()?
> This won't catch every such case (could be that nfsd4_cb_recall_prepare
> already ran and we're too late), so I wonder if this is worth it.
>
> More interesting to me is what exactly it would take to hit this
> case.... Another thread would have to have succesfully hashed a
> delegation for this client and file to make our hash_delegation_locked
> fail. So there would be two leases for the same file and client, but
> with different delegation pointers as the fl_owner. I *think* we handle
> that OK. But it was likely problematic previously when we were still
> using the file pointer as the fl_owner.
I'm thinking this is more easily hit via fp->fi_had_conflict, if a lease
break comes in at the right time?
Thanks,
Andy
--
Andrew W. Elble
aweits@discipline.rit.edu
Infrastructure Engineer, Communications Technical Lead
Rochester Institute of Technology
PGP: BFAD 8461 4CCF DC95 DA2C B0EB 965B 082E 863E C912
next prev parent reply other threads:[~2018-05-14 11:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-09 12:02 [PATCH v2] nfsd: fix error handling in nfs4_set_delegation() Andrew Elble
2018-05-11 21:30 ` J. Bruce Fields
2018-05-14 11:31 ` Andrew W Elble [this message]
2018-05-14 15:45 ` J. Bruce Fields
2018-05-23 12:31 ` Andrew W Elble
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=m21see79sm.fsf@discipline.rit.edu \
--to=aweits@rit.edu \
--cc=bfields@fieldses.org \
--cc=jlayton@kernel.org \
--cc=linux-nfs@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 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.