Changeset 745 for trunk/server/source3/modules/vfs_tsmsm.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source3/modules/vfs_tsmsm.c
r414 r745 40 40 41 41 #include "includes.h" 42 #include "smbd/smbd.h" 42 43 43 44 #ifndef USE_DMAPI … … 147 148 148 149 static bool tsmsm_is_offline(struct vfs_handle_struct *handle, 149 const char *path, 150 SMB_STRUCT_STAT *stbuf) { 150 const struct smb_filename *fname, 151 SMB_STRUCT_STAT *stbuf) 152 { 151 153 struct tsmsm_struct *tsmd = (struct tsmsm_struct *) handle->data; 152 154 const dm_sessid_t *dmsession_id; … … 159 161 char *buf = NULL; 160 162 size_t buflen; 163 NTSTATUS status; 164 char *path; 165 166 status = get_full_smb_filename(talloc_tos(), fname, &path); 167 if (!NT_STATUS_IS_OK(status)) { 168 errno = map_errno_from_nt_status(status); 169 return false; 170 } 161 171 162 172 /* if the file has more than FILE_IS_ONLINE_RATIO of blocks available, 163 173 then assume it is not offline (it may not be 100%, as it could be sparse) */ 164 if (512 * (off_t)stbuf->st_ex_blocks >=174 if (512 * stbuf->st_ex_blocks >= 165 175 stbuf->st_ex_size * tsmd->online_ratio) { 166 DEBUG(10,("%s not offline: st_blocks=%l d st_size=%ld"176 DEBUG(10,("%s not offline: st_blocks=%llu st_size=%llu " 167 177 "online_ratio=%.2f\n", path, 168 ( long)stbuf->st_ex_blocks,169 ( long)stbuf->st_ex_size, tsmd->online_ratio));178 (unsigned long long)stbuf->st_ex_blocks, 179 (unsigned long long)stbuf->st_ex_size, tsmd->online_ratio)); 170 180 return false; 171 181 } … … 264 274 */ 265 275 if(SMB_VFS_FSTAT(fsp, &sbuf) == 0) { 266 DEBUG(10,("tsmsm_aio_force st_blocks=%l d st_size=%ld"267 "online_ratio=%.2f\n", ( long)sbuf.st_ex_blocks,268 ( long)sbuf.st_ex_size, tsmd->online_ratio));269 return !(512 * (off_t)sbuf.st_ex_blocks >=276 DEBUG(10,("tsmsm_aio_force st_blocks=%llu st_size=%llu " 277 "online_ratio=%.2f\n", (unsigned long long)sbuf.st_ex_blocks, 278 (unsigned long long)sbuf.st_ex_size, tsmd->online_ratio)); 279 return !(512 * sbuf.st_ex_blocks >= 270 280 sbuf.st_ex_size * tsmd->online_ratio); 271 281 } … … 341 351 342 352 static int tsmsm_set_offline(struct vfs_handle_struct *handle, 343 const char *path) { 353 const struct smb_filename *fname) 354 { 344 355 struct tsmsm_struct *tsmd = (struct tsmsm_struct *) handle->data; 345 356 int result = 0; 346 357 char *command; 358 NTSTATUS status; 359 char *path; 347 360 348 361 if (tsmd->hsmscript == NULL) { … … 351 364 return 0; 352 365 } 366 367 status = get_full_smb_filename(talloc_tos(), fname, &path); 368 if (!NT_STATUS_IS_OK(status)) { 369 errno = map_errno_from_nt_status(status); 370 return false; 371 } 353 372 354 373 /* Now, call the script */
Note:
See TracChangeset
for help on using the changeset viewer.