 bfab36e816
			
		
	
	
	bfab36e816
	
	
	
		
			
			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>
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			463 B
			
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			19 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
 |