linux/fs/nfsd
J. Bruce Fields 0272e1fd9f knfsd: let nfsd manage timing out its own leases
Currently there's a race that can cause an oops in generic_setlease.

(In detail: nfsd, when it removes a lease, does so by calling
vfs_setlease() with F_UNLCK and a pointer to the fl_flock field, which
in turn points to nfsd's existing lease; but the first thing the
setlease code does is call time_out_leases().  If the lease happens to
already be beyond the lease break time, that will free the lease and (in
nfsd's release_private callback) set fl_flock to NULL, leading to a NULL
deference soon after in vfs_setlease().)

There are probably other things to fix here too, but it seems inherently
racy to allow either locks.c or nfsd to time out this lease.  Instead
just set the fl_break_time to 0 (preventing locks.c from ever timing out
this lock) and leave it up to nfsd's laundromat thread to deal with it.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2007-10-09 18:31:57 -04:00
..
Makefile knfsd: trivial makefile cleanup 2007-05-09 12:30:54 -07:00
auth.c knfsd: clean up EX_RDONLY 2007-07-19 10:04:52 -07:00
export.c knfsd: eliminate unnecessary -ENOENT returns on export downcalls 2007-07-31 15:39:38 -07:00
lockd.c knfsd: lockd: nfsd4: use same grace period for lockd and nfsd4 2007-07-17 10:23:07 -07:00
nfs2acl.c [PATCH] Fix a free-wrong-pointer bug in nfs/acl server. 2007-02-19 16:13:28 -08:00
nfs3acl.c [PATCH] NFS3: Calculate 'w' a bit later in nfs3svc_encode_getaclres() 2006-12-08 08:29:02 -08:00
nfs3proc.c RPC: add wrapper for svc_reserve to account for checksum 2007-05-09 12:30:54 -07:00
nfs3xdr.c knfsd: 64 bit ino support for NFS server 2007-10-09 18:31:57 -04:00
nfs4acl.c knfsd: nfsd4: fix handling of acl errrors 2007-07-17 10:23:07 -07:00
nfs4callback.c knfsd: fix callback rpc cred 2007-10-09 18:31:57 -04:00
nfs4idmap.c knfsd: nfs4 name->id mapping not correctly parsing negative downcall 2007-10-09 18:31:56 -04:00
nfs4proc.c knfsd: demote some printk()s to dprintk()s 2007-10-09 18:31:56 -04:00
nfs4recover.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
nfs4state.c knfsd: let nfsd manage timing out its own leases 2007-10-09 18:31:57 -04:00
nfs4xdr.c knfsd: 64 bit ino support for NFS server 2007-10-09 18:31:57 -04:00
nfscache.c [PATCH] knfsd: SUNRPC: Provide room in svc_rqst for larger addresses 2007-02-12 09:48:36 -08:00
nfsctl.c nfsd warning fix 2007-10-09 18:31:57 -04:00
nfsfh.c knfsd: Validate filehandle type in fsid_source 2007-09-10 18:57:47 -07:00
nfsproc.c knfsd: nfsd4: make readonly access depend on pseudoflavor 2007-07-17 10:23:08 -07:00
nfssvc.c knfsd: move nfsv4 slab creation/destruction to module init/exit 2007-10-09 18:31:56 -04:00
nfsxdr.c knfsd: 64 bit ino support for NFS server 2007-10-09 18:31:57 -04:00
stats.c [PATCH] knfsd: nfsd4: add per-operation server stats 2006-07-10 13:24:27 -07:00
vfs.c nfsd: fix horrible indentation in nfsd_setattr 2007-10-09 18:31:56 -04:00