Sparse file support

From win2000, ntfs (v5.0) supports sparse files. But there’s no any documents to describe
the internals in ntfs driver. I just wonder how could ntfs handle the sparse file
operations.

For creation and reading, there needn’t much words. It’s not hard to be implemented.

But for writing, how to handle the the allocations seems a problem, especially for a
paging io. How could we handle the allocation if it wants to paging write a hole or just
ignore the holes ?

Any one has ever experienced on sparse files ?

Best wishes,

Matt

Dear Matt,

Nero has not touched NTFS’s sparse yet, but we have recently worked on UDF
2.50 sparse implementation. Does your work concentrate only on NTFS or will
it have some impact on UDF file systems running on Windows platform also?

Best regards,

David Burg


David Burg
Software Development,
InCD and Low Level Drivers Project Leader

Nero AG phone: +49 (0)7248 911 862 (room line) Internal VoIP
-363
Im Stoeckmaedle 18 fax: +49 (0)7248 928 299
76307 Karlsbad email: xxxxx@nero.com
Germany http://www.nero.com


Subject: Sparse file support
From: “Matt Wu”
Date: Tue, 22 Feb 2005 21:18:05 +0800
X-Message-Number: 7

From win2000, ntfs (v5.0) supports sparse files. But there’s no any
documents to describe
the internals in ntfs driver. I just wonder how could ntfs handle the sparse
file
operations.

For creation and reading, there needn’t much words. It’s not hard to be
implemented.

But for writing, how to handle the the allocations seems a problem,
especially for a
paging io. How could we handle the allocation if it wants to paging write a
hole or just
ignore the holes ?

Any one has ever experienced on sparse files ?

Best wishes,

Matt

----------------------------------------------------------------------

Hi david,

I’m planning to implement sparse file support in my open source driver: ext2fsd.

Some linux applications will automatically create sparse files. I must support them
or the driver will cause problems when accessing sparse files in windows system.

Linux ext2/ext3 driver will allocate data runs on-the-fly in case of writing the holes of
a sparse file. But for windows, there are many limitations in kernel file system driver.

So I’m wonderring how ntfs does it.

Matt Wu
http://ext2fsd.sf.net

BTW: It seems that the ntfsd list is much more inactive than before.

“David Burg” wrote:xxxxx@ntfsd…
> Dear Matt,
>
> Nero has not touched NTFS’s sparse yet, but we have recently worked on UDF
> 2.50 sparse implementation. Does your work concentrate only on NTFS or will
> it have some impact on UDF file systems running on Windows platform also?
>
> Best regards,
>
> David Burg
>
> ----------------------------------------------------------------
> David Burg
> Software Development,
> InCD and Low Level Drivers Project Leader
>
> Nero AG phone: +49 (0)7248 911 862 (room line) Internal VoIP
> -363
> Im Stoeckmaedle 18 fax: +49 (0)7248 928 299
> 76307 Karlsbad email: xxxxx@nero.com
> Germany http://www.nero.com
> ----------------------------------------------------------------
>
> ----------------------------------------------------------------------
>
> Subject: Sparse file support
> From: “Matt Wu”
> Date: Tue, 22 Feb 2005 21:18:05 +0800
> X-Message-Number: 7
>
> From win2000, ntfs (v5.0) supports sparse files. But there’s no any
> documents to describe
> the internals in ntfs driver. I just wonder how could ntfs handle the sparse
> file
> operations.
>
> For creation and reading, there needn’t much words. It’s not hard to be
> implemented.
>
> But for writing, how to handle the the allocations seems a problem,
> especially for a
> paging io. How could we handle the allocation if it wants to paging write a
> hole or just
> ignore the holes ?
>
> Any one has ever experienced on sparse files ?
>
> Best wishes,
>
> Matt
>
>
> ----------------------------------------------------------------------

I see no limitations in Windows kernel, Cc and FsRtl for sparse file
support.

Just do block allocations from within the low-level (uncached) write paths
before submitting the write down to the disk stack.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Matt Wu”
Newsgroups: ntfsd
To: “Windows File Systems Devs Interest List”
Sent: Thursday, February 24, 2005 10:04 AM
Subject: Re:[ntfsd] Sparse file support

> Hi david,
>
> I’m planning to implement sparse file support in my open source driver:
ext2fsd.
>
> Some linux applications will automatically create sparse files. I must
support them
> or the driver will cause problems when accessing sparse files in windows
system.
>
> Linux ext2/ext3 driver will allocate data runs on-the-fly in case of writing
the holes of
> a sparse file. But for windows, there are many limitations in kernel file
system driver.
>
> So I’m wonderring how ntfs does it.
>
> Matt Wu
> http://ext2fsd.sf.net
>
> BTW: It seems that the ntfsd list is much more inactive than before.
>
>
> “David Burg” wrote:xxxxx@ntfsd…
> > Dear Matt,
> >
> > Nero has not touched NTFS’s sparse yet, but we have recently worked on UDF
> > 2.50 sparse implementation. Does your work concentrate only on NTFS or will
> > it have some impact on UDF file systems running on Windows platform also?
> >
> > Best regards,
> >
> > David Burg
> >
> > ----------------------------------------------------------------
> > David Burg
> > Software Development,
> > InCD and Low Level Drivers Project Leader
> >
> > Nero AG phone: +49 (0)7248 911 862 (room line) Internal VoIP
> > -363
> > Im Stoeckmaedle 18 fax: +49 (0)7248 928 299
> > 76307 Karlsbad email: xxxxx@nero.com
> > Germany http://www.nero.com
> > ----------------------------------------------------------------
> >
> > ----------------------------------------------------------------------
> >
> > Subject: Sparse file support
> > From: “Matt Wu”
> > Date: Tue, 22 Feb 2005 21:18:05 +0800
> > X-Message-Number: 7
> >
> > From win2000, ntfs (v5.0) supports sparse files. But there’s no any
> > documents to describe
> > the internals in ntfs driver. I just wonder how could ntfs handle the
sparse
> > file
> > operations.
> >
> > For creation and reading, there needn’t much words. It’s not hard to be
> > implemented.
> >
> > But for writing, how to handle the the allocations seems a problem,
> > especially for a
> > paging io. How could we handle the allocation if it wants to paging write a
> > hole or just
> > ignore the holes ?
> >
> > Any one has ever experienced on sparse files ?
> >
> > Best wishes,
> >
> > Matt
> >
> >
> > ----------------------------------------------------------------------
>
>
> —
> Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Matt,

Linux ext2/ext3 driver will allocate data runs on-the-fly in case of
writing the holes of
a sparse file. But for windows, there are many limitations in kernel file
system driver.

There are no system limitations making this impossible. The only problem you
will get is maintaining appropriate locking hierarchy when you have to
perform actual allocation.

Andrey.

> > Linux ext2/ext3 driver will allocate data runs on-the-fly in case of

> writing the holes of
> a sparse file. But for windows, there are many limitations in kernel file
> system driver.
>

There are no system limitations making this impossible. The only problem you
will get is maintaining appropriate locking hierarchy when you have to
perform actual allocation.

Yes. Take both Paging and Main locks as shared. This will prevent truncations
during such allocation.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

Matt,

If you have some explicit questions about sparse file support is
implemented in NTFS I would be happy to answer them. Saying how does it
work is too general a question.

Neal Christiansen
Microsoft File System Filter Group Lead
This posting is provided “AS IS” with no warranties, and confers no
Rights

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Matt Wu
Sent: Wednesday, February 23, 2005 11:05 PM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] Sparse file support

Hi david,

I’m planning to implement sparse file support in my open source driver:
ext2fsd.

Some linux applications will automatically create sparse files. I must
support them
or the driver will cause problems when accessing sparse files in windows
system.

Linux ext2/ext3 driver will allocate data runs on-the-fly in case of
writing the holes of
a sparse file. But for windows, there are many limitations in kernel
file system driver.

So I’m wonderring how ntfs does it.

Matt Wu
http://ext2fsd.sf.net

BTW: It seems that the ntfsd list is much more inactive than before.

“David Burg” wrote:xxxxx@ntfsd…
> Dear Matt,
>
> Nero has not touched NTFS’s sparse yet, but we have recently worked on
UDF
> 2.50 sparse implementation. Does your work concentrate only on NTFS or
will
> it have some impact on UDF file systems running on Windows platform
also?
>
> Best regards,
>
> David Burg
>
> ----------------------------------------------------------------
> David Burg
> Software Development,
> InCD and Low Level Drivers Project Leader
>
> Nero AG phone: +49 (0)7248 911 862 (room line) Internal
VoIP
> -363
> Im Stoeckmaedle 18 fax: +49 (0)7248 928 299
> 76307 Karlsbad email: xxxxx@nero.com
> Germany http://www.nero.com
> ----------------------------------------------------------------
>
> ----------------------------------------------------------------------
>
> Subject: Sparse file support
> From: “Matt Wu”
> Date: Tue, 22 Feb 2005 21:18:05 +0800
> X-Message-Number: 7
>
> From win2000, ntfs (v5.0) supports sparse files. But there’s no any
> documents to describe
> the internals in ntfs driver. I just wonder how could ntfs handle the
sparse
> file
> operations.
>
> For creation and reading, there needn’t much words. It’s not hard to
be
> implemented.
>
> But for writing, how to handle the the allocations seems a problem,
> especially for a
> paging io. How could we handle the allocation if it wants to paging
write a
> hole or just
> ignore the holes ?
>
> Any one has ever experienced on sparse files ?
>
> Best wishes,
>
> Matt
>
>
> ----------------------------------------------------------------------


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com