Changeset 222 for branches/samba-3.3.x/source/modules/vfs_acl_tdb.c
- Timestamp:
- May 24, 2009, 7:45:16 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/source/modules/vfs_acl_tdb.c
r206 r222 183 183 struct file_id id; 184 184 struct db_context *db; 185 185 186 SMB_STRUCT_STAT sbuf; 186 187 … … 189 190 190 191 if (fsp && fsp->fh->fd != -1) { 191 if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { 192 return map_nt_error_from_unix(errno); 193 } 192 ret = SMB_VFS_FSTAT(fsp, &sbuf); 194 193 } else { 195 if (SMB_VFS_STAT(handle->conn, name, &sbuf) == -1) { 196 return map_nt_error_from_unix(errno); 197 } 198 } 194 if (fsp && fsp->posix_open) { 195 ret = SMB_VFS_LSTAT(handle->conn, name, &sbuf); 196 } else { 197 ret = SMB_VFS_STAT(handle->conn, name, &sbuf); 198 } 199 } 200 201 if (ret == -1) { 202 return map_nt_error_from_unix(errno); 203 } 204 199 205 id = vfs_file_id_from_sbuf(handle->conn, &sbuf); 200 206 … … 266 272 struct db_context *db; 267 273 struct db_record *rec; 274 268 275 269 276 DEBUG(10,("store_acl_blob_fsp: storing blob length %u on file %s\n", … … 274 281 275 282 if (fsp->fh->fd != -1) { 276 if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { 277 return map_nt_error_from_unix(errno); 278 } 283 ret = SMB_VFS_FSTAT(fsp, &sbuf); 279 284 } else { 280 if (SMB_VFS_STAT(handle->conn, fsp->fsp_name, &sbuf) == -1) { 281 return map_nt_error_from_unix(errno); 282 } 283 } 285 if (fsp->posix_open) { 286 ret = SMB_VFS_LSTAT(handle->conn, fsp->fsp_name, &sbuf); 287 } else { 288 ret = SMB_VFS_STAT(handle->conn, fsp->fsp_name, &sbuf); 289 } 290 } 291 292 if (ret == -1) { 293 return map_nt_error_from_unix(errno); 294 } 295 284 296 id = vfs_file_id_from_sbuf(handle->conn, &sbuf); 285 297 … … 311 323 struct db_context *db; 312 324 struct db_record *rec; 325 313 326 314 327 DEBUG(10,("store_acl_blob_pathname: storing blob " … … 319 332 return NT_STATUS_INTERNAL_DB_CORRUPTION); 320 333 321 if (SMB_VFS_STAT(handle->conn, fname, &sbuf) == -1) { 334 if (lp_posix_pathnames()) { 335 ret = SMB_VFS_LSTAT(handle->conn, fname, &sbuf); 336 } else { 337 ret = SMB_VFS_STAT(handle->conn, fname, &sbuf); 338 } 339 340 if (ret == -1) { 322 341 return map_nt_error_from_unix(errno); 323 342 } … … 490 509 ret = SMB_VFS_FSTAT(fsp, &sbuf); 491 510 } else { 492 ret = SMB_VFS_STAT(handle->conn,fname, &sbuf); 511 if (fsp && fsp->posix_open) { 512 ret = SMB_VFS_LSTAT(handle->conn,fname, &sbuf); 513 } else { 514 ret = SMB_VFS_STAT(handle->conn,fname, &sbuf); 515 } 493 516 } 494 517 if (ret == -1) { … … 579 602 SMB_STRUCT_STAT sbuf; 580 603 struct db_context *db; 581 int ret ;604 int ret; 582 605 583 606 SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); 584 607 585 if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) { 608 if (lp_posix_pathnames()) { 609 ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf); 610 } else { 611 ret = SMB_VFS_STAT(handle->conn, path, &sbuf); 612 } 613 614 if (ret == -1) { 586 615 return -1; 587 616 } … … 622 651 SMB_STRUCT_STAT sbuf; 623 652 struct db_context *db; 624 int ret ;653 int ret; 625 654 626 655 SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); 627 656 628 if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) { 657 if (lp_posix_pathnames()) { 658 ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf); 659 } else { 660 ret = SMB_VFS_STAT(handle->conn, path, &sbuf); 661 } 662 663 if (ret == -1) { 629 664 return -1; 630 665 } … … 724 759 } 725 760 if (fsp->is_directory || fsp->fh->fd == -1) { 726 ret = SMB_VFS_STAT(fsp->conn,fsp->fsp_name, &sbuf); 761 if (fsp->posix_open) { 762 ret = SMB_VFS_LSTAT(fsp->conn,fsp->fsp_name, &sbuf); 763 } else { 764 ret = SMB_VFS_STAT(fsp->conn,fsp->fsp_name, &sbuf); 765 } 727 766 } else { 728 767 ret = SMB_VFS_FSTAT(fsp, &sbuf); … … 809 848 SMB_STRUCT_STAT sbuf; 810 849 struct db_context *db; 811 int ret ;850 int ret; 812 851 813 852 SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); 814 853 815 if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) { 854 if (lp_posix_pathnames()) { 855 ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf); 856 } else { 857 ret = SMB_VFS_STAT(handle->conn, path, &sbuf); 858 } 859 860 if (ret == -1) { 816 861 return -1; 817 862 } … … 844 889 845 890 if (fsp->is_directory || fsp->fh->fd == -1) { 846 ret = SMB_VFS_STAT(fsp->conn,fsp->fsp_name, &sbuf); 891 if (fsp->posix_open) { 892 ret = SMB_VFS_LSTAT(fsp->conn,fsp->fsp_name, &sbuf); 893 } else { 894 ret = SMB_VFS_STAT(fsp->conn,fsp->fsp_name, &sbuf); 895 } 847 896 } else { 848 897 ret = SMB_VFS_FSTAT(fsp, &sbuf);
Note:
See TracChangeset
for help on using the changeset viewer.
