Theodore Tso <tytso@xxxxxxx> writes: > On Tue, Feb 17, 2009 at 10:24:19PM +0300, Dmitri Monakhov wrote: >> Seems there is no strict rule to for this case. In fact everybody >> just ignored this variable after write_begin() has failed. >> This was true until ext4_defrag_partial(). So let's follows simple >> rule similar to block_write_begin(). > > I've checked the latest ext4_defrag_partial, and it doesn't reference > the page variable if write_begin() failed.... > > - Ted Latest posted defrag version 1.0 from 30 Jan, contains following code + up_write(&EXT4_I(org_inode)->i_data_sem); + ret = a_ops->write_begin(o_filp, mapping, offs, data_len, w_flags, + &page, &fsdata); + down_write(&EXT4_I(org_inode)->i_data_sem); + + if (unlikely(ret < 0)) + goto out; ..... +out: + if (unlikely(page)) { + if (PageLocked(page)) + unlock_page(page); + page_cache_release(page); + } In fact the patch i'm propose is mostly a cleanup, rather then serious fix for real issue. IMHO it is not bad idea to fold it in to some real patch. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html