Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source3/modules/vfs_tsmsm.c

    r414 r745  
    4040
    4141#include "includes.h"
     42#include "smbd/smbd.h"
    4243
    4344#ifndef USE_DMAPI
     
    147148
    148149static 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{
    151153        struct tsmsm_struct *tsmd = (struct tsmsm_struct *) handle->data;
    152154        const dm_sessid_t *dmsession_id;
     
    159161        char *buf = NULL;
    160162        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        }
    161171
    162172        /* if the file has more than FILE_IS_ONLINE_RATIO of blocks available,
    163173           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 >=
    165175            stbuf->st_ex_size * tsmd->online_ratio) {
    166                 DEBUG(10,("%s not offline: st_blocks=%ld st_size=%ld "
     176                DEBUG(10,("%s not offline: st_blocks=%llu st_size=%llu "
    167177                          "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));
    170180                return false;
    171181        }
     
    264274        */
    265275        if(SMB_VFS_FSTAT(fsp, &sbuf) == 0) {
    266                 DEBUG(10,("tsmsm_aio_force st_blocks=%ld 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 >=
    270280                         sbuf.st_ex_size * tsmd->online_ratio);
    271281        }
     
    341351
    342352static int tsmsm_set_offline(struct vfs_handle_struct *handle,
    343                              const char *path) {
     353                             const struct smb_filename *fname)
     354{
    344355        struct tsmsm_struct *tsmd = (struct tsmsm_struct *) handle->data;
    345356        int result = 0;
    346357        char *command;
     358        NTSTATUS status;
     359        char *path;
    347360
    348361        if (tsmd->hsmscript == NULL) {
     
    351364                return 0;
    352365        }
     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        }
    353372
    354373        /* Now, call the script */
Note: See TracChangeset for help on using the changeset viewer.