linux/fs/ubifs
Artem Bityutskiy 944fdef52c UBIFS: do not start the commit if there is nothing to commit
This patch fixes suboptimal UBIFS 'sync_fs()' implementation which causes
flash I/O even if the file-system is synchronized. E.g., a 'printk()'
in the MTD erasure function (e.g., 'nand_erase_nand()') can show that
for every 'sync' shell command UBIFS erases at least one eraseblock.

So '$ while true; do sync; done' will cause huge amount of flash I/O.

The reason for this is that UBIFS commits in 'sync_fs()', and starts the
commit even if there is nothing to commit, e.g., it anyway changes the
log. This patch adds a check in the 'do_commit()' UBIFS functions which
prevents the commit if there is nothing to commit.

Reported-by: Hans J. Koch <hjk@linutronix.de>
Tested-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-01-25 10:21:13 +02:00
..
budget.c writeback: enforce s_umount locking in writeback_inodes_sb 2010-06-11 12:58:07 +02:00
commit.c UBIFS: do not start the commit if there is nothing to commit 2011-01-25 10:21:13 +02:00
compress.c
debug.c Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 2010-10-22 16:34:03 -07:00
debug.h UBIFS: introduce list sorting debugging checks 2010-08-30 10:19:09 +03:00
dir.c new helper: ihold() 2010-10-25 21:26:11 -04:00
file.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
find.c
gc.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
io.c UBIFS: introduce mounting flag 2011-01-17 23:24:30 +02:00
ioctl.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
journal.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
Kconfig Revert "lib: build list_sort() only if needed" 2010-03-07 09:54:44 -08:00
key.h UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
log.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
lprops.c UBIFS: improve lprops dump 2009-09-15 17:09:48 +03:00
lpt.c UBIFS: check return code of ubifs_lpt_lookup 2010-09-07 12:09:41 +03:00
lpt_commit.c UBIFS: check return code of pnode_lookup 2010-09-07 12:10:43 +03:00
Makefile
master.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
misc.h UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
orphan.c UBIFS: check ubifs_scan error codes better 2009-09-10 12:06:47 +03:00
recovery.c UBIFS: add a commentary about log recovery 2010-10-17 15:57:40 +03:00
replay.c UBIFS: do not allocate unneeded scan buffer 2010-10-21 11:15:19 +03:00
sb.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
scan.c UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
shrinker.c UBIFS: introduce new flags for RO mounts 2010-09-19 21:07:58 +03:00
super.c UBIFS: introduce mounting flag 2011-01-17 23:24:30 +02:00
tnc.c UBIFS: introduce mounting flag 2011-01-17 23:24:30 +02:00
tnc_commit.c UBIFS: do not print scary error messages needlessly 2009-09-10 12:06:47 +03:00
tnc_misc.c
ubifs-media.h UBIFS: define journal head numbers in ubifs-media.h 2009-09-15 14:45:35 +03:00
ubifs.h UBIFS: introduce mounting flag 2011-01-17 23:24:30 +02:00
xattr.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00