We're recently started experimenting with using ntfs-3g (1.417) in a system 
where we we pack a filesystem as full as we can with a set of files with a 
fairly unpredictable characteristics in terms of size and content. We can 
control the file names and the directory structure of the data we write to the 
filesystem. We've recently added the constraint that it has to be an NTFS 
filesystem; previously we were simply using ext2. 


With ntfs-3g, we find that unless we happen to be working with mostly "large" 
files, we invariably run afoul of one of the two MFT extension/expansion cases 
that seem not to be implemented in libntfs-3g/mft.c. The errors occur long 
before the filesystem is significantly populated if the files are small and 
numerous enough. The particular one we hit is the one that says: 


> May 31 15:13:03 appl2 ntfs-3g[29281]: Not enough space to extended mft data 
> attribute. 
> May 31 15:13:03 appl2 ntfs-3g[29281]: Could not allocate new MFT record


This is uniquely emitted by ntfs_mft_data_extend_allocation() at line 1010. 
There a nice big tantalizing TODO right there. 


I haven't really started looking carefully at this yet, but even before I try 
to familiarize myself with the ntfs-3g code (and the filesystem itself) I have 
questions that you folks might be able to answer: 


1. Is anybody already actively working on implementing this particular 
operation? 


2. Is there a good reason why it hasn't been implemented? Like, is it pretty 
mysterious and impossibly difficult? :-) 

  
3. Although we can't control file sizes, does anybody know of any strategy we 
can undertake with the factors that we can control (directory structure, file 
names, number of concurrent application threads writing files to the 
filesystem, I guess) to try to ensure that this particular kind of MFT 
extension doesn't need to occur when we're populating a filesystem?


Thanks! 


--df
 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
ntfs-3g-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel

Reply via email to