mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-11-04 16:52:06 +10:00 
			
		
		
		
	Big thanks go to Mathias Kolehmainen for reporting the bug, providing debug output and testing the patches I sent him to get it working. The fix was to stop calling ntfs_attr_set() at mount time as that causes balance_dirty_pages_ratelimited() to be called which on systems with little memory actually tries to go and balance the dirty pages which tries to take the s_umount semaphore but because we are still in fill_super() across which the VFS holds s_umount for writing this results in a deadlock. We now do the dirty work by hand by submitting individual buffers. This has the annoying "feature" that mounting can take a few seconds if the journal is large as we have clear it all. One day someone should improve on this by deferring the journal clearing to a helper kernel thread so it can be done in the background but I don't have time for this at the moment and the current solution works fine so I am leaving it like this for now. Signed-off-by: Anton Altaparmakov <aia21@cantab.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			20 lines
		
	
	
		
			463 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			463 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# Rules for making the NTFS driver.
 | 
						|
 | 
						|
obj-$(CONFIG_NTFS_FS) += ntfs.o
 | 
						|
 | 
						|
ntfs-objs := aops.o attrib.o collate.o compress.o debug.o dir.o file.o \
 | 
						|
	     index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o \
 | 
						|
	     unistr.o upcase.o
 | 
						|
 | 
						|
EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.29\"
 | 
						|
 | 
						|
ifeq ($(CONFIG_NTFS_DEBUG),y)
 | 
						|
EXTRA_CFLAGS += -DDEBUG
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(CONFIG_NTFS_RW),y)
 | 
						|
EXTRA_CFLAGS += -DNTFS_RW
 | 
						|
 | 
						|
ntfs-objs += bitmap.o lcnalloc.o logfile.o quota.o usnjrnl.o
 | 
						|
endif
 |