MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2ZeroData

Function Ext2ZeroData

Ext4Fsd/write.c:169–208  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167}
168
169BOOLEAN
170Ext2ZeroData (
171 IN PEXT2_IRP_CONTEXT IrpContext,
172 IN PEXT2_VCB Vcb,
173 IN PFILE_OBJECT FileObject,
174 IN PLARGE_INTEGER Start,
175 IN PLARGE_INTEGER End
176 )
177{
178 PEXT2_FCB Fcb;
179 PBCB Bcb;
180 PVOID Ptr;
181 ULONG Size;
182 BOOLEAN rc = TRUE;
183
184 ASSERT (End && Start && End->QuadPart > Start->QuadPart);
185 Fcb = (PEXT2_FCB) FileObject->FsContext;
186
187 /* skip data zero if we've already tracked unwritten part */
188 if (0 == ( End->LowPart & (BLOCK_SIZE -1)) &&
189 0 == (Start->LowPart & (BLOCK_SIZE -1))) {
190
191 if (INODE_HAS_EXTENT(Fcb->Inode)) {
192 return TRUE;
193 } else {
194#if !EXT2_PRE_ALLOCATION_SUPPORT
195 return TRUE;
196#endif
197 }
198 }
199
200 /* clear data in range [Start, End) */
201 __try {
202 rc = CcZeroData(FileObject, Start, End, Ext2CanIWait());
203 } __except (EXCEPTION_EXECUTE_HANDLER) {
204 DbgBreak();
205 }
206
207 return rc;
208}
209
210VOID
211Ext2DeferWrite(IN PEXT2_IRP_CONTEXT IrpContext, PIRP Irp)

Callers 1

Ext2WriteFileFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected