"error %d. Falling back to slow manual allocation\n", errno);
/* available disk space is enough or not? */
- space_avail =
- get_dfree_info(fsp->conn, fsp->fsp_name, &bsize, &dfree, &dsize);
+ space_avail = get_dfree_info(fsp, &bsize, &dfree, &dsize);
/* space_avail is 1k blocks */
if (space_avail == (uint64_t)-1 ||
((uint64_t)space_to_write/1024 > space_avail) ) {
uint64_t dsize;
};
-uint64_t get_dfree_info(connection_struct *conn, struct smb_filename *fname,
- uint64_t *bsize, uint64_t *dfree, uint64_t *dsize)
+uint64_t get_dfree_info(struct files_struct *fsp,
+ uint64_t *bsize,
+ uint64_t *dfree,
+ uint64_t *dsize)
{
+ struct connection_struct *conn = fsp->conn;
+ struct smb_filename *fname = fsp->fsp_name;
int dfree_cache_time = lp_dfree_cache_time(SNUM(conn));
struct dfree_cached_info *dfc = NULL;
struct dfree_cached_info dfc_new = { 0 };
/* The following definitions come from smbd/dfree.c */
-uint64_t get_dfree_info(connection_struct *conn, struct smb_filename *fname,
- uint64_t *bsize, uint64_t *dfree, uint64_t *dsize);
+uint64_t get_dfree_info(struct files_struct *fsp,
+ uint64_t *bsize,
+ uint64_t *dfree,
+ uint64_t *dsize);
void flush_dfree_cache(void);
/* The following definitions come from smbd/dmapi.c */
return;
}
- ret = get_dfree_info(conn, dot->fsp->fsp_name, &bsize, &dfree, &dsize);
+ ret = get_dfree_info(dot->fsp, &bsize, &dfree, &dsize);
TALLOC_FREE(dot);
{
uint64_t dfree,dsize,bsize,block_size,sectors_per_unit;
data_len = 18;
- df_ret = get_dfree_info(
- conn, fsp->fsp_name, &bsize, &dfree, &dsize);
+ df_ret = get_dfree_info(fsp, &bsize, &dfree, &dsize);
if (df_ret == (uint64_t)-1) {
return map_nt_error_from_unix(errno);
}
{
uint64_t dfree,dsize,bsize,block_size,sectors_per_unit;
data_len = 24;
- df_ret = get_dfree_info(
- conn, fsp->fsp_name, &bsize, &dfree, &dsize);
+ df_ret = get_dfree_info(fsp, &bsize, &dfree, &dsize);
if (df_ret == (uint64_t)-1) {
return map_nt_error_from_unix(errno);
}
{
uint64_t dfree,dsize,bsize,block_size,sectors_per_unit;
data_len = 32;
- df_ret = get_dfree_info(
- conn, fsp->fsp_name, &bsize, &dfree, &dsize);
+ df_ret = get_dfree_info(fsp, &bsize, &dfree, &dsize);
if (df_ret == (uint64_t)-1) {
return map_nt_error_from_unix(errno);
}
len -= fsp->fsp_name->st.st_ex_size;
len /= 1024; /* Len is now number of 1k blocks needed. */
- space_avail =
- get_dfree_info(conn, fsp->fsp_name, &bsize, &dfree, &dsize);
+ space_avail = get_dfree_info(fsp, &bsize, &dfree, &dsize);
if (space_avail == (uint64_t)-1) {
return -1;
}