From: Volker Lendecke Date: Tue, 10 Dec 2024 10:42:59 +0000 (+0100) Subject: smbd: Simplify smbd_do_qfsinfo() X-Git-Tag: tdb-1.4.13~276 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df219ed8185a911542087ce8e6d779e4e133e1ee;p=thirdparty%2Fsamba.git smbd: Simplify smbd_do_qfsinfo() Do early returns, avoid else statements Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/smbd/smb2_trans2.c b/source3/smbd/smb2_trans2.c index 4df3cc0eab1..7ec1af751db 100644 --- a/source3/smbd/smb2_trans2.c +++ b/source3/smbd/smb2_trans2.c @@ -2474,25 +2474,30 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned rc = SMB_VFS_STATVFS(conn, &smb_fname, &svfs); - if (!rc) { - data_len = 56; - SIVAL(pdata,0,svfs.OptimalTransferSize); - SIVAL(pdata,4,svfs.BlockSize); - SBIG_UINT(pdata,8,svfs.TotalBlocks); - SBIG_UINT(pdata,16,svfs.BlocksAvail); - SBIG_UINT(pdata,24,svfs.UserBlocksAvail); - SBIG_UINT(pdata,32,svfs.TotalFileNodes); - SBIG_UINT(pdata,40,svfs.FreeFileNodes); - SBIG_UINT(pdata,48,svfs.FsIdentifier); - DEBUG(5,("smbd_do_qfsinfo : SMB_QUERY_POSIX_FS_INFO successful\n")); #ifdef EOPNOTSUPP - } else if (rc == EOPNOTSUPP) { + if (rc == EOPNOTSUPP) { return NT_STATUS_INVALID_LEVEL; -#endif /* EOPNOTSUPP */ - } else { - DEBUG(0,("vfs_statvfs() failed for service [%s]\n",lp_servicename(talloc_tos(), lp_sub, SNUM(conn)))); + } +#endif + if (rc != 0) { + DBG_ERR("vfs_statvfs() failed for service " + "[%s]\n", + lp_servicename(talloc_tos(), + lp_sub, + SNUM(conn))); return NT_STATUS_DOS(ERRSRV, ERRerror); } + + data_len = 56; + PUSH_LE_U32(pdata, 0, svfs.OptimalTransferSize); + PUSH_LE_U32(pdata, 4, svfs.BlockSize); + PUSH_LE_U64(pdata, 8, svfs.TotalBlocks); + PUSH_LE_U64(pdata, 16, svfs.BlocksAvail); + PUSH_LE_U64(pdata, 24, svfs.UserBlocksAvail); + PUSH_LE_U64(pdata, 32, svfs.TotalFileNodes); + PUSH_LE_U64(pdata, 40, svfs.FreeFileNodes); + PUSH_LE_U64(pdata, 48, svfs.FsIdentifier); + DBG_INFO("SMB_QUERY_POSIX_FS_INFO successful\n"); break; }