638 |
break; |
break; |
639 |
|
|
640 |
case FileAllocationInformation: |
case FileAllocationInformation: |
641 |
|
/* Fall through to FileEndOfFileInformation, |
642 |
unimpl("IRP Set File Information class: FileAllocationInformation\n"); |
which uses ftrunc. This is like Samba with |
643 |
break; |
"strict allocation = false", and means that |
644 |
|
we won't detect out-of-quota errors, for |
645 |
|
example. */ |
646 |
|
|
647 |
case FileEndOfFileInformation: |
case FileEndOfFileInformation: |
648 |
in_uint8s(in, 28); /* unknown */ |
in_uint8s(in, 28); /* unknown */ |
653 |
if (stat_fs.f_bsize * stat_fs.f_bfree < length) |
if (stat_fs.f_bsize * stat_fs.f_bfree < length) |
654 |
return STATUS_DISK_FULL; |
return STATUS_DISK_FULL; |
655 |
|
|
656 |
//printf("FileEndOfFileInformation length = %d\n", length); |
if (ftruncate(handle, length) != 0) |
657 |
// ???????????? |
{ |
658 |
//unimpl("IRP Set File Information class: FileEndOfFileInformation\n"); |
perror("ftruncate"); |
659 |
|
return STATUS_DISK_FULL; |
660 |
|
} |
661 |
|
|
662 |
break; |
break; |
663 |
default: |
default: |
664 |
|
|