On Wed 10-09-14 17:28:45, Darrick J. Wong wrote: > If inline->extent conversion fails (most probably due to ENOSPC) and > we release the temporary page that we allocated to transfer the file > contents, don't keep using the page pointer after releasing the page. > This occasionally leads to complaints about evicting locked pages or > hangs when blocksize > pagesize, because it's possible for the page to > get reallocated elsewhere in the meantime. Good catch! You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > Cc: Tao Ma <tm@xxxxxx> > --- > fs/ext4/inline.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > > diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c > index bea662b..378aadf 100644 > --- a/fs/ext4/inline.c > +++ b/fs/ext4/inline.c > @@ -594,6 +594,7 @@ retry: > if (ret) { > unlock_page(page); > page_cache_release(page); > + page = NULL; > ext4_orphan_add(handle, inode); > up_write(&EXT4_I(inode)->xattr_sem); > sem_held = 0; > @@ -613,7 +614,8 @@ retry: > if (ret == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries)) > goto retry; > > - block_commit_write(page, from, to); > + if (page) > + block_commit_write(page, from, to); > out: > if (page) { > unlock_page(page); > > -- > 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 -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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