From: Adam Thomas Date: Sat, 2 Feb 2013 22:32:31 +0000 (+0000) Subject: UBIFS: fix use of freed ubifs_orphan objects X-Git-Tag: v3.9-rc1~66^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2928f0d0c5ebd6c9605c0d98207a44376387c298;p=pandora-kernel.git UBIFS: fix use of freed ubifs_orphan objects The last orphan in the cnext list has its cnext set to NULL. Because of that, ubifs_delete_orphan assumes that it is not on the cnext list and frees it immediately instead of adding it to the dnext list. The freed orphan is later modified by write_orph_node. This can cause various inconsistencies including directory entries that cannot be removed and this error: UBIFS error (pid 20685): layout_cnodes: LPT out of space at LEB 14:129009 needing 17, done_ltab 1, done_lsave 1 This is a regression introduced by "7074e5eb UBIFS: remove invalid reference to list iterator variable". This change adds an explicit flag to ubifs_orphan indicating whether it is pending commit. Signed-off-by: Adam Thomas Reviewed-by: Adrian Hunter Cc: stable@vger.kernel.org # v3.6+ Signed-off-by: Artem Bityutskiy --- Reading git-diff-tree failed