<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/xfs/libxfs, branch linux-4.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-11-10T15:38:46Z</updated>
<entry>
<title>libxfs: clean up _calc_dquots_per_chunk</title>
<updated>2016-11-10T15:38:46Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-10-20T04:46:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5cb73199ca48749e99d4570caaaa9c4556bc9336'/>
<id>urn:sha1:5cb73199ca48749e99d4570caaaa9c4556bc9336</id>
<content type='text'>
commit 58d789678546d46d7bbd809dd7dab417c0f23655 upstream.

The function xfs_calc_dquots_per_chunk takes a parameter in units
of basic blocks.  The kernel seems to get the units wrong, but
userspace got 'fixed' by commenting out the unnecessary conversion.
Fix both.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>xfs: track log done items directly in the deferred pending work item</title>
<updated>2016-08-30T03:51:39Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-30T03:51:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ea78d80866ce375defb2fdd1c8a3aafec95e0f85'/>
<id>urn:sha1:ea78d80866ce375defb2fdd1c8a3aafec95e0f85</id>
<content type='text'>
Christoph reports slab corruption when a deferred refcount update
aborts during _defer_finish().  The cause of this was broken log item
state tracking in xfs_defer_pending -- upon an abort,
_defer_trans_abort() will call abort_intent on all intent items,
including the ones that have already had a done item attached.

This is incorrect because each intent item has 2 refcount: the first
is released when the intent item is committed to the log; and the
second is released when the _done_ item is committed to the log, or
by the intent creator if there is no done item.  In other words, once
we log the done item, responsibility for releasing the intent item's
second refcount is transferred to the done item and /must not/ be
performed by anything else.

The dfp_committed flag should have been tracking whether or not we had
a done item so that _defer_trans_abort could decide if it needs to
abort the intent item, but due to a thinko this was not the case.  Rip
it out and track the done item directly so that we do the right thing
w.r.t. intent item freeing.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>xfs: fix superblock inprogress check</title>
<updated>2016-08-26T06:01:30Z</updated>
<author>
<name>Dave Chinner</name>
</author>
<published>2016-08-26T06:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3d7ebdeb2c297bd26272384e955033493ca291c'/>
<id>urn:sha1:f3d7ebdeb2c297bd26272384e955033493ca291c</id>
<content type='text'>
From inspection, the superblock sb_inprogress check is done in the
verifier and triggered only for the primary superblock via a
"bp-&gt;b_bn == XFS_SB_DADDR" check.

Unfortunately, the primary superblock is an uncached buffer, and
hence it is configured by xfs_buf_read_uncached() with:

	bp-&gt;b_bn = XFS_BUF_DADDR_NULL;  /* always null for uncached buffers */

And so this check never triggers. Fix it.

cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>xfs: simple btree query range should look right if LE lookup fails</title>
<updated>2016-08-26T06:00:10Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-26T06:00:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b5c2dbd3c9bcfa89fba9709c12ecc0a445c6e40'/>
<id>urn:sha1:5b5c2dbd3c9bcfa89fba9709c12ecc0a445c6e40</id>
<content type='text'>
If the initial LOOKUP_LE in the simple query range fails to find
anything, we should attempt to increment the btree cursor to see
if there actually /are/ records for what we're trying to find.
Without this patch, a bnobt range query of (0, $agsize) returns
no results because the leftmost record never has a startblock
of zero.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;


</content>
</entry>
<entry>
<title>xfs: fix some key handling problems in _btree_simple_query_range</title>
<updated>2016-08-26T05:59:50Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-26T05:59:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=722278997bc964349e23e7061d541f8df3133a04'/>
<id>urn:sha1:722278997bc964349e23e7061d541f8df3133a04</id>
<content type='text'>
We only need the record's high key for the first record that we look
at; for all records, we /definitely/ need the regular record key.
Therefore, fix how the simple range query function gets its keys.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;


</content>
</entry>
<entry>
<title>xfs: don't log the entire end of the AGF</title>
<updated>2016-08-26T05:59:31Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-26T05:59:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da1f039d6947b1a49f13b39a6de0df2a3e9e1ed1'/>
<id>urn:sha1:da1f039d6947b1a49f13b39a6de0df2a3e9e1ed1</id>
<content type='text'>
When we're logging the last non-spare field in the AGF, we don't
need to log the spare fields, so plumb in a new AGF logging flag
to help us avoid that.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;


</content>
</entry>
<entry>
<title>xfs: don't perform lookups on zero-height btrees</title>
<updated>2016-08-26T05:58:40Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-26T05:58:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ed150e1a5cf20c04cf0b2d2c34e498fc1d6519be'/>
<id>urn:sha1:ed150e1a5cf20c04cf0b2d2c34e498fc1d6519be</id>
<content type='text'>
If the caller passes in a cursor to a zero-height btree (which is
impossible), we never set block to anything but NULL, which causes the
later dereference of it to crash.  Instead, just return -EFSCORRUPTED.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;


</content>
</entry>
<entry>
<title>xfs: remove OWN_AG rmap when allocating a block from the AGFL</title>
<updated>2016-08-17T01:12:57Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-17T01:12:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a03f1a6633144300ef4a3a33e95dfa11866f1299'/>
<id>urn:sha1:a03f1a6633144300ef4a3a33e95dfa11866f1299</id>
<content type='text'>
When we're really tight on space, xfs_alloc_ag_vextent_small() can
allocate a block from the AGFL and give it to the caller.  Since the
caller is never the AGFL-fixing method, we must remove the OWN_AG
reverse mapping because it will clash with whatever rmap the caller
wants to set up.  This bug was discovered by running generic/299
repeatedly.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;



</content>
</entry>
<entry>
<title>xfs: store rmapbt block count in the AGF</title>
<updated>2016-08-16T22:31:49Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-16T22:31:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f32866fdc9ed077c3bc7160f4f53d6a479201d46'/>
<id>urn:sha1:f32866fdc9ed077c3bc7160f4f53d6a479201d46</id>
<content type='text'>
Track the number of blocks used for the rmapbt in the AGF.  When we
get to the AG reservation code we need this counter to quickly
make our reservation during mount.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;


</content>
</entry>
<entry>
<title>xfs: move (and rename) the deferred bmap-free tracepoints</title>
<updated>2016-08-03T02:31:07Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2016-08-03T02:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3481b68285238054be519ad0c8cad5cc2425e26c'/>
<id>urn:sha1:3481b68285238054be519ad0c8cad5cc2425e26c</id>
<content type='text'>
Rename the deferred bmap-free to extent_free and make them only
trigger when we're really running deferred ops.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
</feed>
