summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2014-06-04 14:19:30 -0700
committerJeremy Allison <jra@samba.org>2014-06-07 03:15:14 +0200
commitd0a7d7e87ece03a63840b0f143502075d6fa5527 (patch)
treeb7818a32389d58dd693d08cb54190ca16f38cbd5
parent66a04ba7c115d3be111296000e93cc18a1a05ef6 (diff)
downloadsamba-d0a7d7e87ece03a63840b0f143502075d6fa5527.tar.gz
samba-d0a7d7e87ece03a63840b0f143502075d6fa5527.tar.xz
samba-d0a7d7e87ece03a63840b0f143502075d6fa5527.zip
s3: libsmb: Make cli_smb2_dskattr() a 64-bit interface.
Remove the fallback call from cli_dskattr() (now it's not called from external client code). Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <Volker.Lendecke@SerNet.DE>
-rw-r--r--source3/libsmb/cli_smb2_fnum.c8
-rw-r--r--source3/libsmb/cli_smb2_fnum.h6
-rw-r--r--source3/libsmb/clifile.c10
3 files changed, 10 insertions, 14 deletions
diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c
index 8eb776a1324..950398a5cb9 100644
--- a/source3/libsmb/cli_smb2_fnum.c
+++ b/source3/libsmb/cli_smb2_fnum.c
@@ -1411,7 +1411,7 @@ NTSTATUS cli_smb2_setattrE(struct cli_state *cli,
Synchronous only.
***************************************************************/
-NTSTATUS cli_smb2_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail)
+NTSTATUS cli_smb2_dskattr(struct cli_state *cli, uint64_t *bsize, uint64_t *total, uint64_t *avail)
{
NTSTATUS status;
uint16_t fnum = 0xffff;
@@ -1492,13 +1492,13 @@ NTSTATUS cli_smb2_dskattr(struct cli_state *cli, int *bsize, int *total, int *av
bytes_per_sector = IVAL(outbuf.data, 20);
if (bsize) {
- *bsize = (int)(sectors_per_unit * bytes_per_sector);
+ *bsize = (uint64_t)sectors_per_unit * (uint64_t)bytes_per_sector;
}
if (total) {
- *total = (int)total_size;
+ *total = total_size;
}
if (avail) {
- *avail = (int)size_free;
+ *avail = size_free;
}
status = NT_STATUS_OK;
diff --git a/source3/libsmb/cli_smb2_fnum.h b/source3/libsmb/cli_smb2_fnum.h
index 61a0f6851ee..a5ed5a0072b 100644
--- a/source3/libsmb/cli_smb2_fnum.h
+++ b/source3/libsmb/cli_smb2_fnum.h
@@ -100,9 +100,9 @@ NTSTATUS cli_smb2_setattrE(struct cli_state *cli,
time_t access_time,
time_t write_time);
NTSTATUS cli_smb2_dskattr(struct cli_state *cli,
- int *bsize,
- int *total,
- int *avail);
+ uint64_t *bsize,
+ uint64_t *total,
+ uint64_t *avail);
NTSTATUS cli_smb2_query_security_descriptor(struct cli_state *cli,
uint16_t fnum,
uint32_t sec_info,
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index 8bb1512f787..18ed5297b71 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -4094,10 +4094,6 @@ NTSTATUS cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail)
struct tevent_req *req = NULL;
NTSTATUS status = NT_STATUS_OK;
- if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
- return cli_smb2_dskattr(cli, bsize, total, avail);
- }
-
frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
@@ -4138,11 +4134,11 @@ NTSTATUS cli_disk_size(struct cli_state *cli, uint64_t *bsize, uint64_t *total,
NTSTATUS status;
if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
- status = cli_smb2_dskattr(cli, &old_bsize, &old_total, &old_avail);
- } else {
- status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail);
+ return cli_smb2_dskattr(cli, bsize, total, avail);
}
+ /* Old SMB1 core protocol fallback. */
+ status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail);
if (!NT_STATUS_IS_OK(status)) {
return status;
}