From aba344fdfed81b2c03d6114c54cfd73a486aa10b Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Mon, 5 Jul 1999 23:09:37 +0000 Subject: Merge with Linux 2.3.9. --- fs/nfs/dir.c | 8 +++++--- fs/nfs/file.c | 4 ++-- fs/nfs/symlink.c | 2 +- fs/nfs/write.c | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) (limited to 'fs/nfs') diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index d41505862..31d76e5c6 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -78,7 +78,7 @@ struct inode_operations nfs_dir_inode_operations = { nfs_rename, /* rename */ NULL, /* readlink */ NULL, /* follow_link */ - NULL, /* bmap */ + NULL, /* get_block */ NULL, /* readpage */ NULL, /* writepage */ NULL, /* flushpage */ @@ -884,6 +884,8 @@ static int nfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) nfs_flush_dircache(dir); error = nfs_proc_mkdir(NFS_DSERVER(dentry), NFS_FH(dentry->d_parent), dentry->d_name.name, &sattr, &fhandle, &fattr); + if (!error) + dir->i_nlink++; return error; } @@ -909,8 +911,8 @@ dentry->d_inode->i_count, dentry->d_inode->i_nlink); /* Update i_nlink and invalidate dentry. */ if (!error) { d_drop(dentry); - if (dentry->d_inode->i_nlink) - dentry->d_inode->i_nlink --; + if (dir->i_nlink) + dir->i_nlink--; } return error; diff --git a/fs/nfs/file.c b/fs/nfs/file.c index d3066f4cd..2fed65b38 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -71,7 +71,7 @@ struct inode_operations nfs_file_inode_operations = { NULL, /* rename */ NULL, /* readlink */ NULL, /* follow_link */ - NULL, /* bmap */ + NULL, /* get_block */ nfs_readpage, /* readpage */ nfs_writepage, /* writepage */ NULL, /* flushpage */ @@ -167,7 +167,7 @@ nfs_fsync(struct file *file, struct dentry *dentry) * If the writer ends up delaying the write, the writer needs to * increment the page use counts until he is done with the page. */ -static long nfs_write_one_page(struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf) +static int nfs_write_one_page(struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf) { long status; diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c index c6fc4d685..6cd892740 100644 --- a/fs/nfs/symlink.c +++ b/fs/nfs/symlink.c @@ -43,7 +43,7 @@ struct inode_operations nfs_symlink_inode_operations = { NULL, /* rename */ nfs_readlink, /* readlink */ nfs_follow_link, /* follow_link */ - NULL, /* bmap */ + NULL, /* get_block */ NULL, /* readpage */ NULL, /* writepage */ NULL, /* flushpage */ diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 911a5261e..8b63cbf66 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -467,7 +467,7 @@ nfs_updatepage(struct file *file, struct page *page, unsigned long offset, unsig * The IO completion will then free the page and the dentry. */ get_page(page); - file->f_count++; + atomic_inc(&file->f_count); /* Schedule request */ synchronous = schedule_write_request(req, synchronous); -- cgit v1.2.3