mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
![Anton Altaparmakov](/assets/img/avatar_default.png)
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
|