projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NFS: Kill the obsolete NFS_PARANOIA
[powerpc.git]
/
fs
/
lockd
/
svcsubs.c
diff --git
a/fs/lockd/svcsubs.c
b/fs/lockd/svcsubs.c
index
514f5f2
..
84ebba3
100644
(file)
--- a/
fs/lockd/svcsubs.c
+++ b/
fs/lockd/svcsubs.c
@@
-43,7
+43,7
@@
static inline void nlm_debug_print_fh(char *msg, struct nfs_fh *f)
static inline void nlm_debug_print_file(char *msg, struct nlm_file *file)
{
static inline void nlm_debug_print_file(char *msg, struct nlm_file *file)
{
- struct inode *inode = file->f_file->f_dentry->d_inode;
+ struct inode *inode = file->f_file->f_
path.
dentry->d_inode;
dprintk("lockd: %s %s/%ld\n",
msg, inode->i_sb->s_id, inode->i_ino);
dprintk("lockd: %s %s/%ld\n",
msg, inode->i_sb->s_id, inode->i_ino);
@@
-78,14
+78,14
@@
static inline unsigned int file_hash(struct nfs_fh *f)
* This is not quite right, but for now, we assume the client performs
* the proper R/W checking.
*/
* This is not quite right, but for now, we assume the client performs
* the proper R/W checking.
*/
-
u
32
+
__be
32
nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,
struct nfs_fh *f)
{
struct hlist_node *pos;
struct nlm_file *file;
unsigned int hash;
nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,
struct nfs_fh *f)
{
struct hlist_node *pos;
struct nlm_file *file;
unsigned int hash;
-
u32
nfserr;
+
__be32
nfserr;
nlm_debug_print_fh("nlm_file_lookup", f);
nlm_debug_print_fh("nlm_file_lookup", f);
@@
-135,12
+135,6
@@
out_unlock:
out_free:
kfree(file);
out_free:
kfree(file);
-#ifdef CONFIG_LOCKD_V4
- if (nfserr == 1)
- nfserr = nlm4_stale_fh;
- else
-#endif
- nfserr = nlm_lck_denied;
goto out_unlock;
}
goto out_unlock;
}
@@
-188,7
+182,7
@@
again:
lock.fl_type = F_UNLCK;
lock.fl_start = 0;
lock.fl_end = OFFSET_MAX;
lock.fl_type = F_UNLCK;
lock.fl_start = 0;
lock.fl_end = OFFSET_MAX;
- if (
posix_lock_file(file->f_file, &lock
) < 0) {
+ if (
vfs_lock_file(file->f_file, F_SETLK, &lock, NULL
) < 0) {
printk("lockd: unlock failure in %s:%d\n",
__FILE__, __LINE__);
return 1;
printk("lockd: unlock failure in %s:%d\n",
__FILE__, __LINE__);
return 1;
@@
-324,7
+318,16
@@
nlmsvc_same_host(struct nlm_host *host, struct nlm_host *other)
static int
nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy)
{
static int
nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy)
{
- return host->h_server;
+ if (host->h_server) {
+ /* we are destroying locks even though the client
+ * hasn't asked us too, so don't unmonitor the
+ * client
+ */
+ if (host->h_nsmhandle)
+ host->h_nsmhandle->sm_sticky = 1;
+ return 1;
+ } else
+ return 0;
}
/*
}
/*