From: Peter Staubach <staubach@redhat.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: linux-nfs@vger.kernel.org, Frank Filz <ffilzlnx@us.ibm.com>
Subject: Re: [PATCH 038/100] nfsd: Allow AIX client to read dir containing mountpoints
Date: Fri, 08 Feb 2008 16:26:11 -0500 [thread overview]
Message-ID: <47ACC8F3.5070706@redhat.com> (raw)
In-Reply-To: <20080208210335.GI6871@fieldses.org>
J. Bruce Fields wrote:
> On Fri, Feb 08, 2008 at 03:07:57PM -0500, Peter Staubach wrote:
>
>> J. Bruce Fields wrote:
>>
>>> From: Frank Filz <ffilzlnx@us.ibm.com>
>>>
>>> This patch addresses a compatibility issue with a Linux NFS server and
>>> AIX NFS client.
>>>
>>> I have exported /export as fsid=0 with sec=krb5:krb5i
>>> I have mount --bind /home onto /export/home
>>> I have exported /export/home with sec=krb5i
>>>
>>> The AIX client mounts / -o sec=krb5:krb5i onto /mnt
>>>
>>> If I do an ls /mnt, the AIX client gets a permission error. Looking at
>>> the network traceIwe see a READDIR looking for attributes
>>> FATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID. The response gives a
>>> NFS4ERR_WRONGSEC which the AIX client is not expecting.
>>>
>>> Since the AIX client is only asking for an attribute that is an
>>> attribute of the parent file system (pseudo root in my example), it
>>> seems reasonable that there should not be an error.
>>>
>>>
>>>
>> Can we go through this explanation one more time, a little more
>> slowly, please? I am not following it.
>>
>> It is my understanding that FATTR4_RDATTR_ERROR simply says
>> to return a magic value to indicate that the requested attributes
>> could not be retrieved during a READDIR operation. It is also
>> my understanding that the FATTR4_MOUNTED_ON_FILEID returns either
>> the fileid of the entry in the directory or the fileid of the
>> directory which is the root of the mount point which is mounted
>> on top of the entry in the directory.
>>
>
> No, it's the fileid of the directory underneath (the mounted-on
> directory), not of the directory that's mounted on top of it--that would
> be just the regular fileid. Does that clear up the confusion?
>
>
Yes, that helps. I was misinterpreting the arguments in the call
to vfs_getattr() to be the wrong direction.
>> So, given all of this, why is the right thing to do to return
>> the fileid of the entry in the directory, even though it is
>> mounted on top of? Why isn't the right thing to do to return
>> NFS4ERR_WRONGSEC per page 206 in rfc3530?
>>
>> Perhaps I am not following the bind mount properly?
>>
>> A little more below --
>>
>>
>>
>>> In discussing this issue with Bruce Fields, I initially proposed
>>> ignoring the error in nfsd4_encode_dirent_fattr() if all that was being
>>> asked for was FATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID, however,
>>> Bruce suggested that we avoid calling cross_mnt() if only these
>>> attributes are requested.
>>>
>>> The following patch implements bypassing cross_mnt() if only
>>> FATTR4_RDATTR_ERROR and FATTR4_MOUNTED_ON_FILEID are called. Since there
>>> is some complexity in the code in nfsd4_encode_fattr(), I didn't want to
>>> duplicate code (and introduce a maintenance nightmare), so I added a
>>> parameter to nfsd4_encode_fattr() that indicates whether it should
>>> ignore cross mounts and simply fill in the attribute using the passed in
>>> dentry as opposed to it's parent.
>>>
>>> Signed-off-by: Frank Filz <ffilzlnx@us.ibm.com>
>>> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
>>> ---
>>> fs/nfsd/nfs4proc.c | 2 +-
>>> fs/nfsd/nfs4xdr.c | 27 ++++++++++++++++++++++-----
>>> include/linux/nfsd/xdr4.h | 2 +-
>>> 3 files changed, 24 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
>>> index 18ead17..c593db0 100644
>>> --- a/fs/nfsd/nfs4proc.c
>>> +++ b/fs/nfsd/nfs4proc.c
>>> @@ -750,7 +750,7 @@ _nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
>>> cstate->current_fh.fh_export,
>>> cstate->current_fh.fh_dentry, buf,
>>> &count, verify->ve_bmval,
>>> - rqstp);
>>> + rqstp, 0);
>>> /* this means that nfsd4_encode_fattr() ran out of space */
>>> if (status == nfserr_resource && count == 0)
>>> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
>>> index 25c7ae2..2d94b9b 100644
>>> --- a/fs/nfsd/nfs4xdr.c
>>> +++ b/fs/nfsd/nfs4xdr.c
>>> @@ -1453,7 +1453,7 @@ static __be32 fattr_handle_absent_fs(u32 *bmval0, u32 *bmval1, u32 *rdattr_err)
>>> __be32
>>> nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
>>> struct dentry *dentry, __be32 *buffer, int *countp, u32 *bmval,
>>> - struct svc_rqst *rqstp)
>>> + struct svc_rqst *rqstp, int ignore_crossmnt)
>>> {
>>> u32 bmval0 = bmval[0];
>>> u32 bmval1 = bmval[1];
>>> @@ -1833,7 +1833,12 @@ out_acl:
>>> if (bmval1 & FATTR4_WORD1_MOUNTED_ON_FILEID) {
>>> if ((buflen -= 8) < 0)
>>> goto out_resource;
>>> - if (exp->ex_mnt->mnt_root->d_inode == dentry->d_inode) {
>>> + /*
>>> + * Get parent's attributes if not ignoring crossmount
>>> + * and this is the root of a cross-mounted filesystem.
>>> + */
>>> + if (ignore_crossmnt == 0 &&
>>> + exp->ex_mnt->mnt_root->d_inode == dentry->d_inode) {
>>> err = vfs_getattr(exp->ex_mnt->mnt_parent,
>>> exp->ex_mnt->mnt_mountpoint, &stat);
>>> if (err)
>>> @@ -1869,13 +1874,25 @@ nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd,
>>> struct svc_export *exp = cd->rd_fhp->fh_export;
>>> struct dentry *dentry;
>>> __be32 nfserr;
>>> + int ignore_crossmnt = 0;
>>> dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen);
>>> if (IS_ERR(dentry))
>>> return nfserrno(PTR_ERR(dentry));
>>> exp_get(exp);
>>> - if (d_mountpoint(dentry)) {
>>> + /*
>>> + * In the case of a mountpoint, the client may be asking for
>>> + * attributes that are only properties of the underlying filesystem
>>> + * as opposed to the cross-mounted file system. In such a case,
>>> + * we will not follow the cross mount and will fill the attribtutes
>>> + * directly from the mountpoint dentry.
>>> + */
>>> + if (d_mountpoint(dentry) &&
>>> + (cd->rd_bmval[0] & ~FATTR4_WORD0_RDATTR_ERROR) == 0 &&
>>> + (cd->rd_bmval[1] & ~FATTR4_WORD1_MOUNTED_ON_FILEID) == 0)
>>>
>>>
>> These are some odd looking tests. What is the real intention
>> for these tests? They don't test just for requests with just
>> RDATTR_ERROR and MOUNTED_ON_FILEID set. They will trigger
>> whether or not either or neither is set as well.
>>
>
> Right. The test is meant to fail iff someone requests an attribute
> other than those two. (Note the different rd_bmval[] array indices.)
>
>
So, it doesn't matter whether those options are even set then?
Thanx...
ps
> (Actually, I suppose we could also allow requests for lease_time. Patch
> welcomed....)
>
> --b.
>
next prev parent reply other threads:[~2008-02-08 21:26 UTC|newest]
Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-25 23:15 nfs server patches for 2.6.25 J. Bruce Fields
2008-01-25 23:15 ` [PATCH 001/100] nfsd4: probe callback channel only once J. Bruce Fields
2008-01-25 23:15 ` [PATCH 002/100] nfsd: move callback rpc_client creation into separate thread J. Bruce Fields
2008-01-25 23:15 ` [PATCH 003/100] Fix incorrect assignment J. Bruce Fields
2008-01-25 23:15 ` [PATCH 004/100] knfsd: fix broken length check in nfs4idmap.c J. Bruce Fields
2008-01-25 23:15 ` [PATCH 005/100] SUNRPC: Prevent length underflow in read_flush() J. Bruce Fields
2008-01-25 23:15 ` [PATCH 006/100] SUNRPC: Use unsigned string lengths in xdr_decode_string_inplace J. Bruce Fields
2008-01-25 23:15 ` [PATCH 007/100] NLM: Fix sign of length of NLM variable length strings J. Bruce Fields
2008-01-25 23:15 ` [PATCH 008/100] NFSD: Use unsigned length argument for decode_filename J. Bruce Fields
2008-01-25 23:15 ` [PATCH 009/100] NFSD: File name length signage in nfsd request argument structures J. Bruce Fields
2008-01-25 23:15 ` [PATCH 010/100] NFSD: Adjust filename length argument of nfsd_lookup J. Bruce Fields
2008-01-25 23:15 ` [PATCH 011/100] NFSD: Use unsigned length argument for decode_pathname J. Bruce Fields
2008-01-25 23:15 ` [PATCH 012/100] NFSD: Fix mixed sign comparison in nfs3svc_decode_symlinkargs J. Bruce Fields
2008-01-25 23:15 ` [PATCH 013/100] NFSD: Path name length signage in nfsd request argument structures J. Bruce Fields
2008-01-25 23:15 ` [PATCH 014/100] knfsd: fix cache.c comment J. Bruce Fields
2008-01-25 23:15 ` [PATCH 015/100] nfsd: Fix handling of negative lengths in read_buf() J. Bruce Fields
2008-01-25 23:15 ` [PATCH 016/100] knfsd: cleanup nfsd4 properly on module init failure J. Bruce Fields
2008-01-25 23:15 ` [PATCH 017/100] nfsd: cleanup nfsd module initialization cleanup J. Bruce Fields
2008-01-25 23:15 ` [PATCH 018/100] nfsd: fail module init on reply cache init failure J. Bruce Fields
2008-01-25 23:15 ` [PATCH 019/100] knfsd: cache unregistration needn't return error J. Bruce Fields
2008-01-25 23:16 ` [PATCH 020/100] nfsd: select CONFIG_PROC_FS in nfsv4 and gss server cases J. Bruce Fields
2008-01-25 23:16 ` [PATCH 021/100] nfsd: fail init on /proc/fs/nfs/exports creation failure J. Bruce Fields
2008-01-25 23:16 ` [PATCH 022/100] nfsd: move cache proc (un)registration to separate function J. Bruce Fields
2008-01-25 23:16 ` [PATCH 023/100] knfsd: allow cache_register to return error on failure J. Bruce Fields
2008-01-25 23:16 ` [PATCH 024/100] nfsd: move nfsd/auth.h into fs/nfsd J. Bruce Fields
2008-01-25 23:16 ` [PATCH 025/100] nfsd: minor fs/nfsd/auth.h cleanup J. Bruce Fields
2008-01-25 23:16 ` [PATCH 026/100] nfsd4: kill some unneeded setclientid comments J. Bruce Fields
2008-01-25 23:16 ` [PATCH 027/100] nfsd: eliminate final bogus case from setclientid logic J. Bruce Fields
2008-01-25 23:16 ` [PATCH 028/100] nfsd: uniquify cl_confirm values J. Bruce Fields
2008-01-25 23:16 ` [PATCH 029/100] nfsd4: kill unnecessary same_name() in setclientid_confirm J. Bruce Fields
2008-01-25 23:16 ` [PATCH 030/100] nfsd4: remove unnecessary cl_verifier check from setclientid_confirm J. Bruce Fields
2008-01-25 23:16 ` [PATCH 031/100] nfsd4: kill unneeded cl_confirm check J. Bruce Fields
2008-01-25 23:16 ` [PATCH 032/100] nfsd: fix encode_entryplus_baggage() indentation J. Bruce Fields
[not found] ` <1201303040-7779-33-git-send-email-bfields@citi.!umich.edu>
[not found] ` <1201303040-7779-33-git-send-email-bfields@citi.! umich.edu>
2008-01-25 23:16 ` [PATCH 033/100] nfsd4: make current_clientid local J. Bruce Fields
2008-01-25 23:16 ` [PATCH 034/100] nfsd4: miscellaneous nfs4state.c style fixes J. Bruce Fields
2008-01-25 23:16 ` [PATCH 035/100] nfsd4: recognize callback channel failure earlier J. Bruce Fields
2008-01-25 23:16 ` [PATCH 036/100] lockd: fix reference count leaks in async locking case J. Bruce Fields
2008-01-25 23:16 ` [PATCH 037/100] nfsd4: fix bad seqid on lock request incompatible with open mode J. Bruce Fields
2008-01-25 23:16 ` [PATCH 038/100] nfsd: Allow AIX client to read dir containing mountpoints J. Bruce Fields
2008-01-25 23:16 ` [PATCH 039/100] lockd: fix a leak in nlmsvc_testlock asynchronous request handling J. Bruce Fields
2008-01-25 23:16 ` [PATCH 040/100] nfsd: allow root to set uid and gid on create J. Bruce Fields
2008-01-25 23:16 ` [PATCH 041/100] nfsd: fix rsi_cache reference count leak J. Bruce Fields
2008-01-25 23:16 ` [PATCH 042/100] knfsd: change mailing list for nfsd in MAINTAINERS J. Bruce Fields
2008-01-25 23:16 ` [PATCH 043/100] sunrpc: gss: simplify rsi_parse logic J. Bruce Fields
2008-01-25 23:16 ` [PATCH 044/100] nfsd4: clean up access_valid, deny_valid checks J. Bruce Fields
2008-01-25 23:16 ` [PATCH 045/100] Leak in nlmsvc_testlock for async GETFL case J. Bruce Fields
2008-01-25 23:16 ` [PATCH 046/100] svcrpc: ensure gss DESTROY tokens free contexts from cache J. Bruce Fields
2008-01-25 23:16 ` [PATCH 047/100] svc: Add an svc transport class J. Bruce Fields
2008-01-25 23:16 ` [PATCH 048/100] svc: Make svc_sock the tcp/udp transport J. Bruce Fields
2008-01-25 23:16 ` [PATCH 049/100] svc: Change the svc_sock in the rqstp structure to a transport J. Bruce Fields
2008-01-25 23:16 ` [PATCH 050/100] svc: Add a max payload value to the transport J. Bruce Fields
2008-01-25 23:16 ` [PATCH 051/100] svc: Move sk_sendto and sk_recvfrom to svc_xprt_class J. Bruce Fields
2008-01-25 23:16 ` [PATCH 052/100] svc: Add transport specific xpo_release function J. Bruce Fields
2008-01-25 23:16 ` [PATCH 053/100] svc: Add per-transport delete functions J. Bruce Fields
2008-01-25 23:16 ` [PATCH 054/100] svc: Add xpo_prep_reply_hdr J. Bruce Fields
2008-01-25 23:16 ` [PATCH 055/100] svc: Add a transport function that checks for write space J. Bruce Fields
2008-01-25 23:16 ` [PATCH 056/100] svc: Move close processing to a single place J. Bruce Fields
2008-01-25 23:16 ` [PATCH 057/100] svc: Add xpo_accept transport function J. Bruce Fields
2008-01-25 23:16 ` [PATCH 058/100] svc: Remove unnecessary call to svc_sock_enqueue J. Bruce Fields
2008-01-25 23:16 ` [PATCH 059/100] svc: Move connection limit checking to its own function J. Bruce Fields
2008-01-25 23:16 ` [PATCH 060/100] svc: Add a generic transport svc_create_xprt function J. Bruce Fields
2008-01-25 23:16 ` [PATCH 061/100] svc: Change services to use new svc_create_xprt service J. Bruce Fields
2008-01-25 23:16 ` [PATCH 062/100] svc: Change sk_inuse to a kref J. Bruce Fields
2008-01-25 23:16 ` [PATCH 063/100] svc: Move sk_flags to the svc_xprt structure J. Bruce Fields
2008-01-25 23:16 ` [PATCH 064/100] svc: Move sk_server and sk_pool to svc_xprt J. Bruce Fields
2008-01-25 23:16 ` [PATCH 065/100] svc: Make close transport independent J. Bruce Fields
2008-01-25 23:16 ` [PATCH 066/100] svc: Move sk_reserved to svc_xprt J. Bruce Fields
2008-01-25 23:16 ` [PATCH 067/100] svc: Make the enqueue service transport neutral and export it J. Bruce Fields
2008-01-25 23:16 ` [PATCH 068/100] svc: Make svc_send transport neutral J. Bruce Fields
2008-01-25 23:16 ` [PATCH 069/100] svc: Change svc_sock_received to svc_xprt_received and export it J. Bruce Fields
2008-01-25 23:16 ` [PATCH 070/100] svc: Move accept call to svc_xprt_received to common code J. Bruce Fields
2008-01-25 23:16 ` [PATCH 071/100] svc: Remove sk_lastrecv J. Bruce Fields
2008-01-25 23:16 ` [PATCH 072/100] svc: Move the authinfo cache to svc_xprt J. Bruce Fields
2008-01-25 23:16 ` [PATCH 073/100] svc: Make deferral processing xprt independent J. Bruce Fields
2008-01-25 23:16 ` [PATCH 074/100] svc: Move the sockaddr information to svc_xprt J. Bruce Fields
2008-01-25 23:16 ` [PATCH 075/100] svc: Make svc_sock_release svc_xprt_release J. Bruce Fields
2008-01-25 23:16 ` [PATCH 076/100] svc: Make svc_recv transport neutral J. Bruce Fields
2008-01-25 23:16 ` [PATCH 077/100] svc: Make svc_age_temp_sockets svc_age_temp_transports J. Bruce Fields
2008-01-25 23:16 ` [PATCH 078/100] svc: Move create logic to common code J. Bruce Fields
2008-01-25 23:16 ` [PATCH 079/100] svc: Removing remaining references to rq_sock in rqstp J. Bruce Fields
2008-01-25 23:17 ` [PATCH 080/100] svc: Make svc_check_conn_limits xprt independent J. Bruce Fields
2008-01-25 23:17 ` [PATCH 081/100] svc: Move the xprt independent code to the svc_xprt.c file J. Bruce Fields
2008-01-25 23:17 ` [PATCH 082/100] svc: Add transport hdr size for defer/revisit J. Bruce Fields
2008-01-25 23:17 ` [PATCH 083/100] svc: Add /proc/sys/sunrpc/transport files J. Bruce Fields
2008-01-25 23:17 ` [PATCH 084/100] svc: Add svc API that queries for a transport instance J. Bruce Fields
2008-01-25 23:17 ` [PATCH 085/100] knfsd: Support adding transports by writing portlist file J. Bruce Fields
2008-01-25 23:17 ` [PATCH 086/100] svc: Add svc_xprt_names service to replace svc_sock_names J. Bruce Fields
2008-01-25 23:17 ` [PATCH 087/100] rdma: SVCRMDA Header File J. Bruce Fields
2008-01-25 23:17 ` [PATCH 088/100] rdma: SVCRDMA Transport Module J. Bruce Fields
2008-01-25 23:17 ` [PATCH 089/100] rdma: SVCRDMA Core Transport Services J. Bruce Fields
2008-01-25 23:17 ` [PATCH 090/100] rdma: SVCRDMA recvfrom J. Bruce Fields
2008-01-25 23:17 ` [PATCH 091/100] rdma: SVCRDMA sendto J. Bruce Fields
2008-01-25 23:17 ` [PATCH 092/100] rdma: ONCRPC RDMA protocol marshalling J. Bruce Fields
2008-01-25 23:17 ` [PATCH 093/100] rdma: makefile J. Bruce Fields
2008-01-25 23:17 ` [PATCH 094/100] SUNRPC: spin svc_rqst initialization to its own function J. Bruce Fields
2008-01-25 23:17 ` [PATCH 095/100] SUNRPC: export svc_sock_update_bufs J. Bruce Fields
2008-01-25 23:17 ` [PATCH 096/100] NLM: Convert lockd to use kthreads J. Bruce Fields
2008-01-25 23:17 ` [PATCH 097/100] NLM: have nlm_shutdown_hosts kill off all NLM RPC tasks J. Bruce Fields
2008-01-25 23:17 ` [PATCH 098/100] knfsd: don't bother mapping putrootfh enoent to eperm J. Bruce Fields
2008-01-25 23:17 ` [PATCH 099/100] lockd: minor log message fix J. Bruce Fields
2008-01-25 23:17 ` [PATCH 100/100] nfsd: more careful input validation in nfsctl write methods J. Bruce Fields
2008-01-25 23:55 ` [PATCH 097/100] NLM: have nlm_shutdown_hosts kill off all NLM RPC tasks Jeff Layton
[not found] ` <20080125185548.5363f046-RtJpwOs3+0O+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2008-01-26 0:31 ` J. Bruce Fields
2008-01-26 1:02 ` Jeff Layton
2008-01-26 1:19 ` Trond Myklebust
[not found] ` <1201310387.4150.21.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-01-28 15:11 ` Jeff Layton
2008-01-28 20:17 ` [PATCH 039/100] lockd: fix a leak in nlmsvc_testlock asynchronous request handling Chuck Lever
2008-01-28 20:28 ` Oleg Drokin
2008-01-28 20:04 ` [PATCH 038/100] nfsd: Allow AIX client to read dir containing mountpoints Chuck Lever
2008-01-28 20:54 ` J. Bruce Fields
2008-02-08 20:07 ` Peter Staubach
2008-02-08 21:03 ` J. Bruce Fields
2008-02-08 21:25 ` Frank Filz
2008-02-08 21:26 ` Peter Staubach [this message]
2008-02-08 21:46 ` J. Bruce Fields
2008-02-11 20:26 ` Peter Staubach
2008-01-28 19:46 ` [PATCH 036/100] lockd: fix reference count leaks in async locking case Chuck Lever
2008-01-28 20:44 ` J. Bruce Fields
2008-01-28 20:47 ` Oleg Drokin
[not found] ` <B0E92DA2-92DD-4637-B265-57B0D6D0D761-SOTZviwpzew/JUsKyNonYw@public.gmane.org>
2008-01-28 21:09 ` J. Bruce Fields
2008-01-28 19:39 ` [PATCH 034/100] nfsd4: miscellaneous nfs4state.c style fixes Chuck Lever
2008-01-28 20:24 ` J. Bruce Fields
2008-01-28 17:24 ` [PATCH 024/100] nfsd: move nfsd/auth.h into fs/nfsd Chuck Lever
2008-01-28 18:13 ` J. Bruce Fields
2008-01-28 19:40 ` [PATCH 022/100] nfsd: move cache proc (un)registration to separate function Chuck Lever
2008-01-28 21:31 ` J. Bruce Fields
2008-01-28 19:40 ` [PATCH 021/100] nfsd: fail init on /proc/fs/nfs/exports creation failure Chuck Lever
2008-01-28 21:20 ` J. Bruce Fields
2008-01-28 18:07 ` [PATCH 020/100] nfsd: select CONFIG_PROC_FS in nfsv4 and gss server cases Chuck Lever
2008-01-28 18:28 ` J. Bruce Fields
2008-01-28 21:12 ` Chuck Lever
2008-01-28 21:48 ` J. Bruce Fields
2008-02-01 16:40 ` Chuck Lever
2008-02-01 21:01 ` J. Bruce Fields
2008-02-04 21:29 ` Chuck Lever
2008-02-04 22:15 ` J. Bruce Fields
2008-02-04 23:17 ` Chuck Lever
2008-02-04 23:24 ` J. Bruce Fields
2008-01-28 18:03 ` [PATCH 018/100] nfsd: fail module init on reply cache init failure Chuck Lever
2008-01-28 18:32 ` J. Bruce Fields
2008-01-28 18:00 ` [PATCH 015/100] nfsd: Fix handling of negative lengths in read_buf() Chuck Lever
2008-01-28 20:15 ` J. Bruce Fields
2008-01-28 21:46 ` Chuck Lever
2008-01-28 22:14 ` J. Bruce Fields
2008-01-28 23:16 ` Chuck Lever
2008-01-28 23:31 ` J. Bruce Fields
2008-01-28 17:40 ` [PATCH 003/100] Fix incorrect assignment Chuck Lever
2008-01-28 20:07 ` J. Bruce Fields
2008-01-28 21:22 ` Chuck Lever
2008-01-28 17:35 ` [PATCH 001/100] nfsd4: probe callback channel only once Chuck Lever
2008-01-28 18:48 ` J. Bruce Fields
2008-01-28 21:14 ` Chuck Lever
2008-01-28 21:39 ` J. Bruce Fields
2008-01-28 21:55 ` Chuck Lever
2008-01-26 0:15 ` nfs server patches not in 2.6.25 J. Bruce Fields
2008-01-27 20:42 ` nfs server patches for 2.6.25 Simon Holm Thøgersen
2008-01-27 22:10 ` J. Bruce Fields
2008-01-28 3:15 ` J. Bruce Fields
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=47ACC8F3.5070706@redhat.com \
--to=staubach@redhat.com \
--cc=bfields@fieldses.org \
--cc=ffilzlnx@us.ibm.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox