From 2765ddddaab77e4c154b594e79bfa2e815e46df0 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Sat, 12 Sep 2009 11:54:29 -0400 Subject: [PATCH] --- yaml --- r: 166362 b: refs/heads/master c: 48541bd3dd4739b4d574b44ea47660c88d833677 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/cifs/cifsglob.h | 4 +++- trunk/fs/cifs/dir.c | 2 +- trunk/fs/cifs/file.c | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 90e9b3775929..64e41435f8ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 058daf4f6795fd23fcca41fe53151cdcbbd263ec +refs/heads/master: 48541bd3dd4739b4d574b44ea47660c88d833677 diff --git a/trunk/fs/cifs/cifsglob.h b/trunk/fs/cifs/cifsglob.h index 9a7527dc977e..c19419a38f62 100644 --- a/trunk/fs/cifs/cifsglob.h +++ b/trunk/fs/cifs/cifsglob.h @@ -365,8 +365,10 @@ static inline void cifsFileInfo_get(struct cifsFileInfo *cifs_file) /* Release a reference on the file private data */ static inline void cifsFileInfo_put(struct cifsFileInfo *cifs_file) { - if (atomic_dec_and_test(&cifs_file->count)) + if (atomic_dec_and_test(&cifs_file->count)) { + iput(cifs_file->pInode); kfree(cifs_file); + } } /* diff --git a/trunk/fs/cifs/dir.c b/trunk/fs/cifs/dir.c index 44f735aa2e3f..36435502b5e8 100644 --- a/trunk/fs/cifs/dir.c +++ b/trunk/fs/cifs/dir.c @@ -147,7 +147,7 @@ cifs_fill_fileinfo(struct inode *newinode, __u16 fileHandle, pCifsFile->netfid = fileHandle; pCifsFile->pid = current->tgid; - pCifsFile->pInode = newinode; + pCifsFile->pInode = igrab(newinode); pCifsFile->invalidHandle = false; pCifsFile->closePend = false; mutex_init(&pCifsFile->fh_mutex); diff --git a/trunk/fs/cifs/file.c b/trunk/fs/cifs/file.c index 225d127c960e..b976cea24102 100644 --- a/trunk/fs/cifs/file.c +++ b/trunk/fs/cifs/file.c @@ -50,7 +50,7 @@ static inline struct cifsFileInfo *cifs_init_private( mutex_init(&private_data->lock_mutex); INIT_LIST_HEAD(&private_data->llist); private_data->pfile = file; /* needed for writepage */ - private_data->pInode = inode; + private_data->pInode = igrab(inode); private_data->invalidHandle = false; private_data->closePend = false; /* Initialize reference count to one. The private data is