Roxen.git / server / modules / filesystems / filesystem.pike

version» Context lines:

Roxen.git/server/modules/filesystems/filesystem.pike:622:    TRACE_LEAVE("Deletion failed.");    }   #if constant(System.EEXIST)    else {    TRACE_LEAVE("Directory not empty.");    }   #endif    } else {    deletes++;    +  unlock_path(virt_fname, id); +     if (id->misc->quota_obj && stat->isreg()) {    id->misc->quota_obj->deallocate(virt_fname,    stat->size());    }    TRACE_LEAVE("Ok.");    }    }    TRACE_LEAVE("Done.");   }   
Roxen.git/server/modules/filesystems/filesystem.pike:1584:    return errno_to_status (errno(), 0, id);    }    } else {    return errno_to_status (errno(), 0, id);    }       if (id->multi_status_size() > start_ms_size) {    TRACE_LEAVE("DELETE: Partial failure.");    return ([]);    } +  } else { +  unlock_path(f, id);    }    } else {    mapping|int(0..1) res =    write_access(({ combine_path(f, "../"), f }), 0, id);    if (res) {    SIMPLE_TRACE_LEAVE("DELETE: Write access denied.");    return res;    }      #if 0
Roxen.git/server/modules/filesystems/filesystem.pike:1616:    if(!rm(norm_f))    {    privs = 0;    id->misc->error_code = 405;    TRACE_LEAVE("DELETE: Failed");    return 0;    }    privs = 0;    deletes++;    +  unlock_path(f, id); +     if (id->misc->quota_obj && (size > 0)) {    id->misc->quota_obj->deallocate(URI, size);    }    }    TRACE_LEAVE("DELETE: Success");    return Roxen.http_status(204,(norm_f+" DELETED from the server"));       default:    id->misc->error_code = 501;    SIMPLE_TRACE_LEAVE("%s: Not supported", id->method);
Roxen.git/server/modules/filesystems/filesystem.pike:1701:    TRACE_LEAVE("");    return errno_to_status (errno(), 0, id);    }       if (id->multi_status_size() > start_ms_size) {    privs = 0;    TRACE_LEAVE("COPY: Partial failure in destination directory delete.");    TRACE_LEAVE("");    return ([]);    } +  } else { +  unlock_path(dest, id);    }    SIMPLE_TRACE_LEAVE("COPY: Delete ok.");    } else if (source_st->isdir) {    if (!rm(dest_path)) {    privs = 0;    if (errno() != System.ENOENT)    {    mapping(string:mixed) status = errno_to_status (errno(), 0, id);    if (!status) status = (["error": id->misc->error_code]);    id->set_status_for_path(mountpoint + dest,    status->error, status->rettext);    TRACE_LEAVE("");    return ([]);    }    SIMPLE_TRACE_LEAVE("COPY: File deletion failed (destination disappeared).");    } else {    SIMPLE_TRACE_LEAVE("COPY: File deletion ok."); -  +  +  unlock_path(dest, id);    }    } else {    SIMPLE_TRACE_LEAVE("COPY: No need to perform deletion.");    }    privs = 0;    break;    case MAYBE_OVERWRITE:    if ((source_st->isreg != dest_st->isreg) ||    (source_st->isdir != dest_st->isdir)) {    TRACE_LEAVE("COPY: Resource types for source and destination differ.");