aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/cifs/cifsglob.h10
-rw-r--r--fs/cifs/file.c10
2 files changed, 11 insertions, 9 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 53899a8d7c4a..18ee0adda306 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -408,15 +408,7 @@ static inline void cifsFileInfo_get(struct cifsFileInfo *cifs_file)
408 atomic_inc(&cifs_file->count); 408 atomic_inc(&cifs_file->count);
409} 409}
410 410
411/* Release a reference on the file private data */ 411void cifsFileInfo_put(struct cifsFileInfo *cifs_file);
412static inline void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
413{
414 if (atomic_dec_and_test(&cifs_file->count)) {
415 cifs_put_tlink(cifs_file->tlink);
416 dput(cifs_file->dentry);
417 kfree(cifs_file);
418 }
419}
420 412
421/* 413/*
422 * One of these for each file inode 414 * One of these for each file inode
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 26048dc9069a..a3634e43bd4f 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -266,6 +266,16 @@ cifs_new_fileinfo(__u16 fileHandle, struct file *file,
266 return pCifsFile; 266 return pCifsFile;
267} 267}
268 268
269/* Release a reference on the file private data */
270void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
271{
272 if (atomic_dec_and_test(&cifs_file->count)) {
273 cifs_put_tlink(cifs_file->tlink);
274 dput(cifs_file->dentry);
275 kfree(cifs_file);
276 }
277}
278
269int cifs_open(struct inode *inode, struct file *file) 279int cifs_open(struct inode *inode, struct file *file)
270{ 280{
271 int rc = -EACCES; 281 int rc = -EACCES;