diff options
author | Matt Wu <matt@ext2fsd.com> | 2016-03-13 16:23:04 +0300 |
---|---|---|
committer | Matt Wu <matt@ext2fsd.com> | 2016-03-13 16:23:04 +0300 |
commit | 1fd42c2bde2c1a8e4bac4f1bcf90e9ae92ca4909 (patch) | |
tree | 1197b586b32eef1d7cb39540c89e70dfaca9231f /Ext3Fsd/write.c | |
parent | cb7d54c1165f7af04fdafcc61992cd7e7afc3a7e (diff) |
Feature: symlink supported
merged and optimized upon ngkaho123's implmentation
Diffstat (limited to 'Ext3Fsd/write.c')
-rwxr-xr-x | Ext3Fsd/write.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Ext3Fsd/write.c b/Ext3Fsd/write.c index 721b911..5afaef5 100755 --- a/Ext3Fsd/write.c +++ b/Ext3Fsd/write.c @@ -651,7 +651,7 @@ Ext2WriteInode ( IN ULONG Size, IN BOOLEAN bDirectIo, OUT PULONG BytesWritten -) + ) { PEXT2_EXTENT Chain = NULL; NTSTATUS Status = STATUS_UNSUCCESSFUL; @@ -668,7 +668,7 @@ Ext2WriteInode ( Mcb, Offset, Size, - IsMcbDirectory(Mcb) ? FALSE : TRUE, + S_ISDIR(Mcb->Inode.i_mode) ? FALSE : TRUE, &Chain ); @@ -735,6 +735,7 @@ Ext2WriteInode ( return Status; } + NTSTATUS Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext) { @@ -806,7 +807,7 @@ Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext) DEBUG(DL_INF, ("Ext2WriteFile: %wZ Offset=%I64xh Length=%xh Paging=%xh Nocache=%xh\n", &Fcb->Mcb->ShortName, ByteOffset.QuadPart, Length, PagingIo, Nocache)); - if (IsSpecialFile(Fcb)) { + if (IsSpecialFile(Fcb) || IsInodeSymLink(Fcb->Inode) ) { Status = STATUS_INVALID_DEVICE_REQUEST; __leave; } |