linux/fs/ubifs
Artem Bityutskiy 0a6fb8d9c4 UBIFS: fix lprops committing bug
When writing lprop nodes, do not forget to set @from to 0 when
switching the LEB. This fixes the following bug:

UBIFS error (pid 27768): ubifs_leb_write: writing -15456 bytes at 16:15880, error -22
UBIFS error (pid 27768): do_commit: commit failed, error -22
UBIFS warning (pid 27768): ubifs_ro_mode: switched to read-only mode, error -22
Pid: 27768, comm: freespace Not tainted 2.6.29-rc4-ubifs-2.6 #43
Call Trace:
 [<ffffffffa00c46d6>] ubifs_ro_mode+0x54/0x56 [ubifs]
 [<ffffffffa00cfa16>] do_commit+0x4f5/0x50a [ubifs]
 [<ffffffffa00cfae7>] ubifs_run_commit+0xbc/0xdb [ubifs]
 [<ffffffffa00d42b9>] ubifs_budget_space+0x742/0x9ed [ubifs]
 [<ffffffff812daf45>] ? __mutex_lock_common+0x361/0x3ae
 [<ffffffffa00bc437>] ? ubifs_write_begin+0x18d/0x44c [ubifs]
 [<ffffffffa00bc5cb>] ubifs_write_begin+0x321/0x44c [ubifs]
 [<ffffffff8106222b>] ? trace_hardirqs_on_caller+0x1f/0x14d
 [<ffffffff81097ce2>] generic_file_buffered_write+0x12f/0x2d9
 [<ffffffff8109828d>] __generic_file_aio_write_nolock+0x261/0x295
 [<ffffffff81098aff>] generic_file_aio_write+0x69/0xc5
 [<ffffffffa00bb914>] ubifs_aio_write+0x14c/0x19e [ubifs]
 [<ffffffff810c8f42>] do_sync_write+0xe7/0x12d
 [<ffffffff81055378>] ? autoremove_wake_function+0x0/0x38
 [<ffffffff81149edc>] ? security_file_permission+0x11/0x13
 [<ffffffff810c9827>] vfs_write+0xab/0x105
 [<ffffffff810c9945>] sys_write+0x47/0x6f
 [<ffffffff8100c35b>] system_call_fastpath+0x16/0x1b

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2009-03-16 10:51:51 +02:00
..
budget.c UBIFS: add re-mount debugging checks 2009-01-26 12:54:11 +02:00
commit.c UBIFS: separate debugging fields out 2008-12-03 13:14:33 +02:00
compress.c UBIFS: fix sparse warnings 2008-12-31 14:13:24 +02:00
debug.c UBIFS: spelling fix 'date' -> 'data' 2009-01-29 16:15:51 +02:00
debug.h UBIFS: add re-mount debugging checks 2009-01-26 12:54:11 +02:00
dir.c UBIFS: simplify locking 2009-01-26 12:54:11 +02:00
file.c UBIFS: fix bug where page is marked uptodate when out of space 2009-03-14 16:46:33 +02:00
find.c UBIFS: improve find function interface 2009-03-08 13:29:09 +02:00
gc.c UBIFS: remount ro fixes 2009-01-29 16:19:36 +02:00
io.c UBIFS: fix no_chk_data_crc 2009-01-27 16:25:10 +02:00
ioctl.c UBIFS: fix writing uncompressed files 2008-12-31 14:13:25 +02:00
journal.c UBIFS: improve find function interface 2009-03-08 13:29:09 +02:00
Kconfig trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
key.h UBIFS: amend key_hash return value 2009-03-08 13:29:41 +02:00
log.c UBIFS: list usage cleanup 2009-02-17 12:45:22 +02:00
lprops.c UBIFS: add re-mount debugging checks 2009-01-26 12:54:11 +02:00
lpt_commit.c UBIFS: fix lprops committing bug 2009-03-16 10:51:51 +02:00
lpt.c UBIFS: use nicer 64-bit math 2008-12-23 12:23:40 +02:00
Makefile UBIFS: include to compilation 2008-07-15 17:35:24 +03:00
master.c UBIFS: return sensible error codes 2009-01-29 16:22:54 +02:00
misc.h UBIFS: inline one-line functions 2008-09-30 11:12:56 +03:00
orphan.c UBIFS: ensure orphan area head is initialized 2009-01-26 12:54:11 +02:00
recovery.c UBIFS: fix compilation warnings 2008-11-06 11:06:31 +02:00
replay.c UBIFS: restore budg_uncommitted_idx 2008-12-31 14:13:24 +02:00
sb.c UBIFS: use nicer 64-bit math 2008-12-23 12:23:40 +02:00
scan.c UBIFS: add no_chk_data_crc mount option 2008-09-30 11:12:56 +03:00
shrinker.c UBIFS: list usage cleanup 2009-02-17 12:45:22 +02:00
super.c UBIFS: fix bogus assertion 2009-03-15 17:20:22 +02:00
tnc_commit.c UBIFS: re-calculate min_idx_size after the commit 2008-12-23 12:24:05 +02:00
tnc_misc.c UBIFS: correct key comparison 2008-09-30 11:12:57 +03:00
tnc.c UBIFS: fix no_chk_data_crc 2009-01-27 16:25:10 +02:00
ubifs-media.h UBIFS: slight compression optimization 2008-12-03 13:13:50 +02:00
ubifs.h UBIFS: improve find function interface 2009-03-08 13:29:09 +02:00
xattr.c UBIFS: remove unneeded unlikely() 2008-09-30 11:12:55 +03:00