diff options
author | Jeff Layton <jlayton@redhat.com> | 2010-06-16 19:40:16 +0200 |
---|---|---|
committer | Jeff Layton <jlayton@redhat.com> | 2010-06-16 19:40:16 +0200 |
commit | 2422f676fb78942d054f7e7a2c3ceaeb7945d814 (patch) | |
tree | cacba53545327624023baf450868749ccec5a65b /fs/cifs/cifsproto.h | |
parent | Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6 (diff) | |
download | linux-2422f676fb78942d054f7e7a2c3ceaeb7945d814.tar.xz linux-2422f676fb78942d054f7e7a2c3ceaeb7945d814.zip |
cifs: move cifs_new_fileinfo call out of cifs_posix_open
Having cifs_posix_open call cifs_new_fileinfo is problematic and
inconsistent with how "regular" opens work. It's also buggy as
cifs_reopen_file calls this function on a reconnect, which creates a new
struct cifsFileInfo that just gets leaked.
Push it out into the callers. This also allows us to get rid of the
"mnt" arg to cifs_posix_open.
Finally, in the event that a cifsFileInfo isn't or can't be created, we
always want to close the filehandle out on the server as the client
won't have a record of the filehandle and can't actually use it. Make
sure that CIFSSMBClose is called in those cases.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-and-Tested-by: Suresh Jayaraman <sjayaraman@suse.de>
Diffstat (limited to 'fs/cifs/cifsproto.h')
-rw-r--r-- | fs/cifs/cifsproto.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index fb1657e0fdb8..fb6318b81509 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h @@ -106,7 +106,6 @@ extern struct cifsFileInfo *cifs_new_fileinfo(struct inode *newinode, __u16 fileHandle, struct file *file, struct vfsmount *mnt, unsigned int oflags); extern int cifs_posix_open(char *full_path, struct inode **pinode, - struct vfsmount *mnt, struct super_block *sb, int mode, int oflags, __u32 *poplock, __u16 *pnetfid, int xid); |