cifs: move cifs_new_fileinfo call out of cifs_posix_open
authorJeff Layton <jlayton@redhat.com>
Wed, 16 Jun 2010 17:40:16 +0000 (13:40 -0400)
committerJeff Layton <jlayton@redhat.com>
Wed, 16 Jun 2010 17:40:16 +0000 (13:40 -0400)
commit2422f676fb78942d054f7e7a2c3ceaeb7945d814
treecacba53545327624023baf450868749ccec5a65b
parent0933a95dfdb1ae5c93e1ede5899f35acc2bb244d
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>
fs/cifs/cifsproto.h
fs/cifs/dir.c
fs/cifs/file.c