nfsd changes for 3.6
Subsystems (5)
Please pull nfsd (and some lockd and a couple locks/lease) changes from:
git://linux-nfs.org/~bfields/linux.git nfsd-next
This has been an unusually quiet cycle--mostly bugfixes and cleanup. The one large piece is Stanislav's work to containerize the server's grace period--but that in itself is just one more step in a not-yet-complete project to allow fully containerized nfs service.
There are a number of outstanding delegation, container, v4 state, and gss patches that aren't quite ready yet; 3.7 may be wilder.
--b.
----------------------------------------------------------------
Chuck Lever (1):
NFSD: TEST_STATEID should not return NFS4ERR_STALE_STATEID
Eldad Zack (2):
sunrpc/cache.h: fix coding style
sunrpc/cache.h: replace simple_strtoul
Filipe Brandenburger (1):
locks: prevent side-effects of locks_release_private before file_lock is initialized
J. Bruce Fields (10):
nfsd4: remove unnecessary comment
nfsd4: nfsd4_lock() cleanup
nfsd4: process_open2 cleanup
nfsd4: our filesystems are normally case sensitive
nfsd4: release openowners on free in >=4.1 case
nfsd: allow owner_override only for regular files
nfsd: share some function prototypes
nfsd: add get_uint for u32's
locks: move lease-specific code out of locks_delete_lock
nfsd4: fix missing fault_inject.h include
NeilBrown (1):
SUNRPC/cache: fix reporting of expired cache entries in 'content' file.
Stanislav Kinsbursky (18):
NFSd: fix locking in nfsd_forget_delegations()
NFSd: introduce nfsd_destroy() helper
NFSd: set nfsd_serv to NULL after service destruction
LockD: mark host per network namespace on garbage collect
LockD: make garbage collector network namespace aware.
LockD: manage garbage collection timeout per networks namespace
LockD: manage used host count per networks namespace
Lockd: host complaining function introduced
Lockd: add more debug to host shutdown functions
LockD: manage grace period per network namespace
LockD: make lockd manager allocated per network namespace
NFSd: make nfsd4_manager allocated per network namespace context.
SUNRPC: service request network namespace helper introduced
LockD: manage grace list per network namespace
LockD: pass actual network namespace to grace period management functions
Lockd: move grace period management from lockd() to per-net functions
NFSd: make grace end flag per network namespace
NFSd: make boot_time variable per network namespace
Vivek Trivedi (1):
nfsd4: fix cr_principal comparison check in same_creds
Weston Andros Adamson (1):
nfsd: probe the back channel on new connections
fs/lockd/grace.c | 16 ++-- fs/lockd/host.c | 92 ++++++++++++------- fs/lockd/netns.h | 7 ++ fs/lockd/svc.c | 43 +++++---- fs/lockd/svc4proc.c | 13 +-- fs/lockd/svclock.c | 16 ++-- fs/lockd/svcproc.c | 15 ++-- fs/lockd/svcsubs.c | 19 ++-- fs/locks.c | 28 +++--- fs/nfs/callback_xdr.c | 4 +- fs/nfsd/export.c | 10 +-- fs/nfsd/netns.h | 4 + fs/nfsd/nfs4callback.c | 1 - fs/nfsd/nfs4idmap.c | 4 +- fs/nfsd/nfs4proc.c | 18 ++-- fs/nfsd/nfs4state.c | 201 +++++++++++++++++++++++++----------------- fs/nfsd/nfs4xdr.c | 2 +- fs/nfsd/nfsctl.c | 8 +- fs/nfsd/nfsd.h | 13 +++ fs/nfsd/nfssvc.c | 24 ++--- fs/nfsd/state.h | 5 +- fs/nfsd/vfs.c | 10 ++- include/linux/fs.h | 5 +- include/linux/lockd/lockd.h | 6 +- include/linux/sunrpc/cache.h | 34 +++++-- include/linux/sunrpc/svc.h | 2 + net/sunrpc/cache.c | 5 +- 27 files changed, 368 insertions(+), 237 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line · bfields
Please pull nfsd (and some lockd and a couple locks/lease) changes from:
By the way, for a few years now I've been semi-regularly picking up locks.c changes for my tree. I wonder if I should be.
At the least we should probably remove this entry from MAINTAINERS? And by default I suppose that stuff reverts to Al, who rumor has it will have a fair number of locks.c patches next time around.
Or I'm happy to claim to be maintainer of that file if somebody prefers, it doesn't matter much to me.
--b.
MAINTAINERS +0 -9
@@ -2767,15 +2767,6 @@ F: include/scsi/fc/ F: include/scsi/libfc.h F: include/scsi/libfcoe.h -FILE LOCKING (flock() and fcntl()/lockf()) -M: Matthew Wilcox <[email protected]> -L: [email protected] -S: Maintained -F: include/linux/fcntl.h -F: include/linux/fs.h -F: fs/fcntl.c -F: fs/locks.c - FILESYSTEMS (VFS and infrastructure) M: Alexander Viro <[email protected]> L: [email protected]
Quoted 3 lines · J. Bruce Fields
By the way, for a few years now I've been semi-regularly picking up
locks.cchanges for my tree. I wonder if I should be.
I really wish you didn't. Or at least not this way.
For example, now you removed that lm_release_private case, but you did that without apparently talking to any VFS maintainers.
And the commit seems to be pure shit.
Why is it pure shit? Look at what users are left. THERE ARE NO USERS THAT SET THAT FIELD ANY MORE!
Maybe I missed some odd user that somehow avoids the grep, but I don't think so. So there is nothing that ever sets it, why the hell does the thing still remain at all?
So if this is a real bugfix, then I think it damn well should
(a) at a minimum have been discussed with VFS maintainers
(b) have been thought through a bit more (ie remove all remains of
that now useless lm_release_private field)
(c) likely never have gone through the NFSD tree in any case.
I've pulled the changes for now, but I absolutely *detest* seeing things like this. I care very little about the nfsd code, but I care deeply when I see insanity happening in the VFS layer. And right now, "lm_release_private" is insane as of this pull.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 1/1 locks: remove unused lm_release_private
From: "J. Bruce Fields" <[email protected]>
3b6e2723f32de42028617f2c99b244ccd72cd959 "locks: prevent side-effects of locks_release_private before file_lock is initialized" removed the last user of lm_release_private without removing the field itself.
--- Documentation/filesystems/Locking | 2 -- fs/locks.c | 6 +----- include/linux/fs.h | 1 - 3 files changed, 1 insertion(+), 8 deletions(-)
Quoted 3 lines · Linus Torvalds
Maybe I missed some odd user that somehow avoids the grep, but I don't think so. So there is nothing that ever sets it, why the hell does the thing still remain at all?
Embarassingly: I had work in progress that could make use of lm_release_private soon, so I didn't bother removing it.
But "soon" was optimistic, and anyway why leave the code in a confusing state, so: agreed it should have gone, apologies.
--b.
Documentation/filesystems/Locking +0 -2
@@ -343,7 +343,6 @@ prototypes: int (*lm_compare_owner)(struct file_lock *, struct file_lock *); void (*lm_notify)(struct file_lock *); /* unblock callback */ int (*lm_grant)(struct file_lock *, struct file_lock *, int); - void (*lm_release_private)(struct file_lock *); void (*lm_break)(struct file_lock *); /* break_lease callback */ int (*lm_change)(struct file_lock **, int);
@@ -352,7 +351,6 @@ locking rules: lm_compare_owner: yes no lm_notify: yes no lm_grant: no no -lm_release_private: maybe no lm_break: yes no lm_change yes no
fs/locks.c +1 -5
@@ -200,11 +200,7 @@ void locks_release_private(struct file_lock *fl) fl->fl_ops->fl_release_private (fl); fl->fl_ops =NULL ; } -if (fl->fl_lmops) { -if (fl->fl_lmops->lm_release_private) - fl->fl_lmops->lm_release_private (fl); - fl->fl_lmops =NULL ; - } + fl->fl_lmops =NULL ; }EXPORT_SYMBOL_GPL (locks_release_private);
include/linux/fs.h +0 -1
@@ -1154,7 +1154,6 @@ struct lock_manager_operations {int (*lm_compare_owner)(struct file_lock *,struct file_lock *);void (*lm_notify)(struct file_lock *);/* unblock callback */ int (*lm_grant)(struct file_lock *,struct file_lock *,int ); -void (*lm_release_private)(struct file_lock *);void (*lm_break)(struct file_lock *);int (*lm_change)(struct file_lock **,int ); };
Signature · 1 line
1.7.9.5