Re: [PATCH 5/5] NFS: Save FSID's root FH in nfs_server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jun 25, 2013, at 5:15 PM, "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx> wrote:

> On Tue, 2013-06-25 at 13:22 -0700, Chuck Lever wrote:
>> On Jun 25, 2013, at 12:37 PM, "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx> wrote:
>> 
>>> On Tue, 2013-06-25 at 12:24 -0400, Chuck Lever wrote:
>>>> Save each FSID's root file handle in the FSID's nfs_server structure
>>>> on the client.  This is needed for NFSv4 migration recovery.
>>> 
>>> Please just use sb->s_root.
>> 
>> The migration recovery procedures do not take an inode or dentry argument.  All we have is an nfs_server.  I see
>> 
>>  struct nfs_server *server = NFS_SB(sb);
>> 
>> but what is the preferred method for going the other way?  A naive approach would be to plant a super_block back-pointer in each nfs_server.
> 
> Why do you not have an inode or dentry?

That's the way the APIs happen to be architected.  I wasn't certain that exception->inode in nfs4_handle_exception(), and state->inode in nfs4_async_handle_error(), would always be non-NULL when I needed an inode pointer.

> Surely the migration must have
> been triggered either by an operation involving a filehandle, in which
> case you have an inode, or by a LEASE_MOVED, in which case there is open
> state on the target filesystem.

It's quite convenient to always use the FSID's root FH, but I agree, it's not required by the protocol.

Re: LEASE_MOVED, I'm not confident the client stops sending RENEW operations when it has no more open state.

> I'm not opposed to putting a backpointer to the super_block in the
> nfs_server, but I do want to understand why it is needed.


Alternately, we could save a pointer to the FSID's root dentry or inode.

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux