patch-2.4.0-test2 linux/fs/nfs/inode.c
Next file: linux/fs/nfs/nfs3proc.c
Previous file: linux/fs/nfs/flushd.c
Back to the patch index
Back to the overall index
- Lines: 91
- Date:
Fri Jun 23 21:12:53 2000
- Orig file:
v2.4.0-test1/linux/fs/nfs/inode.c
- Orig date:
Mon Jun 19 16:32:00 2000
diff -u --recursive --new-file v2.4.0-test1/linux/fs/nfs/inode.c linux/fs/nfs/inode.c
@@ -44,7 +44,6 @@
static void nfs_invalidate_inode(struct inode *);
static void nfs_read_inode(struct inode *);
-static void nfs_put_inode(struct inode *);
static void nfs_delete_inode(struct inode *);
static void nfs_put_super(struct super_block *);
static void nfs_umount_begin(struct super_block *);
@@ -52,7 +51,7 @@
static struct super_operations nfs_sops = {
read_inode: nfs_read_inode,
- put_inode: nfs_put_inode,
+ put_inode: force_delete,
delete_inode: nfs_delete_inode,
put_super: nfs_put_super,
statfs: nfs_statfs,
@@ -115,17 +114,6 @@
}
static void
-nfs_put_inode(struct inode * inode)
-{
- dprintk("NFS: put_inode(%x/%ld)\n", inode->i_dev, inode->i_ino);
- /*
- * We want to get rid of unused inodes ...
- */
- if (inode->i_count == 1)
- inode->i_nlink = 0;
-}
-
-static void
nfs_delete_inode(struct inode * inode)
{
dprintk("NFS: delete_inode(%x/%ld)\n", inode->i_dev, inode->i_ino);
@@ -690,7 +678,7 @@
* don't invalidate their inodes even if all dentries are
* unhashed.
*/
- if (unhashed && inode->i_count == unhashed + 1
+ if (unhashed && atomic_read(&inode->i_count) == unhashed + 1
&& !S_ISSOCK(inode->i_mode) && !S_ISFIFO(inode->i_mode))
is_stale = 1;
@@ -717,7 +705,7 @@
(long long)fattr->fileid);
/* Install the file handle in the dentry */
- *((struct nfs_fh *) dentry->d_fsdata) = *fhandle;
+ memcpy(dentry->d_fsdata, fhandle, sizeof(struct nfs_fh));
#ifdef CONFIG_NFS_SNAPSHOT
/*
@@ -784,7 +772,7 @@
break;
dprintk("__nfs_fhget: inode %ld still busy, i_count=%d\n",
- inode->i_ino, inode->i_count);
+ inode->i_ino, atomic_read(&inode->i_count));
nfs_zap_caches(inode);
remove_inode_hash(inode);
iput(inode);
@@ -795,7 +783,7 @@
nfs_fill_inode(inode, fattr);
dprintk("NFS: __nfs_fhget(%x/%ld ct=%d)\n",
- inode->i_dev, inode->i_ino, inode->i_count);
+ inode->i_dev, inode->i_ino, atomic_read(&inode->i_count));
out:
return inode;
@@ -870,7 +858,7 @@
int error;
if (!(NFS_FLAGS(inode) & flag))
return 0;
- inode->i_count++;
+ atomic_inc(&inode->i_count);
error = nfs_wait_event(clnt, inode->i_wait, !(NFS_FLAGS(inode) & flag));
iput(inode);
return error;
@@ -1019,8 +1007,8 @@
goto out;
dfprintk(VFS, "NFS: refresh_inode(%x/%ld ct=%d info=0x%x)\n",
- inode->i_dev, inode->i_ino, inode->i_count,
- fattr->valid);
+ inode->i_dev, inode->i_ino,
+ atomic_read(&inode->i_count), fattr->valid);
if (NFS_FSID(inode) != fattr->fsid ||
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)