[pnfs] FW: CVS: nfsv4

Iyer, Rahul Rahul.Iyer at netapp.com
Wed Jan 31 04:26:17 EST 2007


Forgot to reply all
Regards
Rahul
 

> -----Original Message-----
> From: Iyer, Rahul 
> Sent: Wednesday, January 31, 2007 1:11 AM
> To: 'William A. (Andy) Adamson'
> Subject: RE: [pnfs] CVS: nfsv4
> 
> Hi Andy,
> I figured out the bug. It was rather stupid on my part. What 
> happens is that in nfs4_kill_super() I call 
> nfs4_proc_destroy_session() which destroys the session and 
> frees the session struct. Then, nfs4_kill_super() calls 
> kill_anon_sb(), which eventually calls clear_inode(). 
> Thisresults in a call to pnfs_return_layout() in order to 
> return the layout. When this tries to setup a sequence op, 
> the session pointer it needs has been freed. 
> 
> So, we need something like nfs4_return_all_layouts(). This 
> would walk the superblock inode list and return any layouts 
> that it might have. I'll fix this. In time, this function 
> will traverse the layout cache instead.
> Regards
> Rahul
> 
> 
> > -----Original Message-----
> > From: William A. (Andy) Adamson [mailto:andros at citi.umich.edu]
> > Sent: Monday, January 29, 2007 1:22 PM
> > To: Iyer, Rahul
> > Subject: Re: [pnfs] CVS: nfsv4
> > 
> > yes.
> > 
> > 
> > On 1/29/07, Iyer, Rahul <Rahul.Iyer at netapp.com> wrote:
> > 
> > 	Was it on the unmount the last time as well?
> > 	Regards
> > 	Rahul
> > 	
> > 	
> > 	> -----Original Message-----
> > 	> From: William A. (Andy) Adamson
> > [mailto:andros at citi.umich.edu] 
> > 	> Sent: Monday, January 29, 2007 12:50 PM
> > 	> To: Iyer, Rahul
> > 	> Cc: pnfs at linux-nfs.org
> > 	> Subject: Re: [pnfs] CVS: nfsv4
> > 	>
> > 	> whoops! spoke too soon. 
> > 	>
> > 	> I mount, traverse into the mount point, vi a file, and then
> > 	> umount and BANG:
> > 	>
> > 	> nfs4_sequence_done() gets called with a NULL data pointer.
> > 	>
> > 	> -->Andy
> > 	>
> > 	>
> > 	> On 1/29/07, Iyer, Rahul <Rahul.Iyer at netapp.com> wrote:
> > 	>
> > 	>       Cool! I hope we catch this Heisenbug though...
> > 	>       REGARDS
> > 	>       Rahul
> > 	>
> > 	>
> > 	>       > -----Original Message-----
> > 	>       > From: William A. (Andy) Adamson
> > 	> [mailto:andros at citi.umich.edu ]
> > 	>       > Sent: Monday, January 29, 2007 10:09 AM 
> > 	>       > To: Iyer, Rahul
> > 	>       > Cc: pnfs at linux-nfs.org
> > 	>       > Subject: Re: [pnfs] CVS: nfsv4
> > 	>       >
> > 	>       > hi rahul
> > 	>       > 
> > 	>       > i re-ran a kernel without the "null pointer 
> > fix" and i can't
> > 	>       > reproduce the problem.
> > 	>       >
> > 	>       > so, i can remove the check for the null session in 
> > 	>       > nfs41_proc_sequence_done() and the null clp in
> > 	> nfs4_sequence_done()
> > 	>       >
> > 	>       > -->Andy
> > 	>       >
> > 	>       >
> > 	>       > On 1/29/07, Iyer, Rahul < 
> > Rahul.Iyer at netapp.com> wrote:
> > 	>       >
> > 	>       >       So, the reason I used 
> > nfs4_get_renew_cred() was that I
> > 	>       > didn't want to
> > 	>       >       send sequence always. If there are no 
> > open files, then 
> > 	>       > that's fine... We
> > 	>       >       do not send a sequence and let the 
> > clientid (and the
> > 	>       > associated session)
> > 	>       >       expire. We can set the session up as 
> > and when needed 
> > 	>       > again. AFAICS this
> > 	>       >       approach sure beats littering the network with
> > 	> needless traffic.
> > 	>       >
> > 	>       >       About the null pointer, what was NULL?
> > 	>       > Nfs41_proc_sequence() takes 3
> > 	>       >       arguments - a session pointer, a 
> > nfs41_sequence_res
> > 	>       > pointer and a status
> > 	>       >       int. Which was NULL again and what was 
> > the test case? 
> > 	>       >       Regards
> > 	>       >       Rahul
> > 	>       >       P.S: I have some uncommitted code... We 
> > have all pNFS
> > 	>       > ops except for
> > 	>       >       LAYOUTCOMMIT and LAYOUTRETURN 
> > working... We should be 
> > 	>       > able to finish
> > 	>       >       that off on Monday and I'll commit it in one go.
> > 	>       >
> > 	>       >
> > 	>       >       > -----Original Message-----
> > 	>       >       > From: William Andros Adamson [mailto: 
> > 	>       > andros at citi.umich.edu <mailto:andros at citi.umich.edu> ]
> > 	>       >       > Sent: Saturday, January 27, 2007 2:48 PM 
> > 	>       >       > To: pnfs at linux-nfs.org
> > 	>       >       > Subject: [pnfs] CVS: nfsv4
> > 	>       >       >
> > 	>       >       > CVSROOT:      /cvs 
> > 	>       >       > Module name:  nfsv4
> > 	>       >       > Changes by:   andros at citi.umich.edu
> > 	> 2007/01/27 17:48:03
> > 	>       >       >
> > 	>       >       > Modified files:
> > 	>       >       >       cvs/pnfs/fs/nfs: nfs4proc.c nfs4renewd.c
> > 	>       >       >
> > 	>       >       > Log message:
> > 	>       >       > nfs4_get_renew_cred() searches the list of 
> > 	> stateowners for a
> > 	>       >       > given nfs4_client and returns the first
> > 	> credential it finds.
> > 	>       >       > this works for OP_RENEW which is only needed
> > 	> when state has 
> > 	>       >       > been established.
> > 	>       >       >
> > 	>       >       > sessions changes the renew strategy:
> > 	> OP_SEQUENCE is sent with
> > 	>       >       > every RPC, and a OP_RENEW call must be sent 
> > 	> caveat lease_time
> > 	>       >       > even when no OPEN state has been established.
> > 	>       >       >
> > 	>       >       > if nfs4_get_renew_cred() fails to 
> > find a credential,
> > 	>       > create on with 
> > 	>       >       > rpcauth_lookupcred() for the renew call under
> > 	> sessions.
> > 	>       >       >
> > 	>       >       > nfs41_proc_sequence_done() can have a NULL
> > 	> data - at least i 
> > 	>       >       > hit it in my debugging....
> > 	>       >       >
> > 	>       >       > 
> > _______________________________________________
> > 	>       >       > pNFS mailing list
> > 	>       >       > pNFS at linux-nfs.org
> > 	>       >       > 
> > http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
> > 	>       >       > 
> > 	>       >
> > 	>       >
> > 	>       >
> > 	>       >
> > 	>       >
> > 	>
> > 	>
> > 	>
> > 	>
> > 	>
> > 	
> > 	
> > 
> > 
> > 


More information about the pNFS mailing list