s3:smb2_create: fix allocation size return value when opening existing files
authorChristian Ambach <ambi@samba.org>
Mon, 10 Oct 2011 15:48:18 +0000 (17:48 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 11 Oct 2011 18:07:31 +0000 (20:07 +0200)
at least on GPFS, using the stat information gave wrong results
example: FileInfo gave 12582912000, Create Response gave 25769803776000

This makes the create part use the same method as fileinfo,
matching up the replies of both calls

Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Mon Oct 10 21:49:53 CEST 2011 on sn-devel-104
(cherry picked from commit ec0c1f2c34ea520b4a7d636ba284a9c7d3ecd96f)

Fix bug #8518 (SMB2 create call returns incorrect file allocation size).

source3/smbd/smb2_create.c

index b8557e01aafa159baf99dad4d9a48905d79c06a6..5316100e60a71167aacb5268eb2c157162498e57 100644 (file)
@@ -820,8 +820,8 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
                        get_change_timespec(smb1req->conn, result,
                                        result->fsp_name));
        state->out_allocation_size =
-                       result->fsp_name->st.st_ex_blksize *
-                       result->fsp_name->st.st_ex_blocks;
+                       SMB_VFS_GET_ALLOC_SIZE(smb1req->conn, result,
+                                              &(result->fsp_name->st));
        state->out_end_of_file = result->fsp_name->st.st_ex_size;
        if (state->out_file_attributes == 0) {
                state->out_file_attributes = FILE_ATTRIBUTE_NORMAL;