<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/block, branch v3.15</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/block?h=v3.15</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/block?h=v3.15'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-05-27T14:41:10Z</updated>
<entry>
<title>virtio_blk: fix race between start and stop queue</title>
<updated>2014-05-27T14:41:10Z</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2014-05-16T15:31:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=aa0818c6ee8d8e4772725a43550823347bc1ad30'/>
<id>urn:sha1:aa0818c6ee8d8e4772725a43550823347bc1ad30</id>
<content type='text'>
When there isn't enough vring descriptor for adding to vq,
blk-mq will be put as stopped state until some of pending
descriptors are completed &amp; freed.

Unfortunately, the vq's interrupt may come just before
blk-mq's BLK_MQ_S_STOPPED flag is set, so the blk-mq will
still be kept as stopped even though lots of descriptors
are completed and freed in the interrupt handler. The worst
case is that all pending descriptors are freed in the
interrupt handler, and the queue is kept as stopped forever.

This patch fixes the problem by starting/stopping blk-mq
with holding vq_lock.

Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Cc: stable@kernel.org
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;

Conflicts:
	drivers/block/virtio_blk.c
</content>
</entry>
<entry>
<title>floppy: don't write kernel-only members to FDRAWCMD ioctl output</title>
<updated>2014-05-05T14:46:56Z</updated>
<author>
<name>Matthew Daley</name>
<email>mattd@bugfuzz.com</email>
</author>
<published>2014-04-28T07:05:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2145e15e0557a01b9195d1c7199a1b92cb9be81f'/>
<id>urn:sha1:2145e15e0557a01b9195d1c7199a1b92cb9be81f</id>
<content type='text'>
Do not leak kernel-only floppy_raw_cmd structure members to userspace.
This includes the linked-list pointer and the pointer to the allocated
DMA space.

Signed-off-by: Matthew Daley &lt;mattd@bugfuzz.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>floppy: ignore kernel-only members in FDRAWCMD ioctl input</title>
<updated>2014-05-05T14:46:55Z</updated>
<author>
<name>Matthew Daley</name>
<email>mattd@bugfuzz.com</email>
</author>
<published>2014-04-28T07:05:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ef87dbe7614341c2e7bfe8d32fcb7028cc97442c'/>
<id>urn:sha1:ef87dbe7614341c2e7bfe8d32fcb7028cc97442c</id>
<content type='text'>
Always clear out these floppy_raw_cmd struct members after copying the
entire structure from userspace so that the in-kernel version is always
valid and never left in an interdeterminate state.

Signed-off-by: Matthew Daley &lt;mattd@bugfuzz.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2014-04-12T21:49:50Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-04-12T21:49:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5166701b368caea89d57b14bf41cf39e819dad51'/>
<id>urn:sha1:5166701b368caea89d57b14bf41cf39e819dad51</id>
<content type='text'>
Pull vfs updates from Al Viro:
 "The first vfs pile, with deep apologies for being very late in this
  window.

  Assorted cleanups and fixes, plus a large preparatory part of iov_iter
  work.  There's a lot more of that, but it'll probably go into the next
  merge window - it *does* shape up nicely, removes a lot of
  boilerplate, gets rid of locking inconsistencie between aio_write and
  splice_write and I hope to get Kent's direct-io rewrite merged into
  the same queue, but some of the stuff after this point is having
  (mostly trivial) conflicts with the things already merged into
  mainline and with some I want more testing.

  This one passes LTP and xfstests without regressions, in addition to
  usual beating.  BTW, readahead02 in ltp syscalls testsuite has started
  giving failures since "mm/readahead.c: fix readahead failure for
  memoryless NUMA nodes and limit readahead pages" - might be a false
  positive, might be a real regression..."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
  missing bits of "splice: fix racy pipe-&gt;buffers uses"
  cifs: fix the race in cifs_writev()
  ceph_sync_{,direct_}write: fix an oops on ceph_osdc_new_request() failure
  kill generic_file_buffered_write()
  ocfs2_file_aio_write(): switch to generic_perform_write()
  ceph_aio_write(): switch to generic_perform_write()
  xfs_file_buffered_aio_write(): switch to generic_perform_write()
  export generic_perform_write(), start getting rid of generic_file_buffer_write()
  generic_file_direct_write(): get rid of ppos argument
  btrfs_file_aio_write(): get rid of ppos
  kill the 5th argument of generic_file_buffered_write()
  kill the 4th argument of __generic_file_aio_write()
  lustre: don't open-code kernel_recvmsg()
  ocfs2: don't open-code kernel_recvmsg()
  drbd: don't open-code kernel_recvmsg()
  constify blk_rq_map_user_iov() and friends
  lustre: switch to kernel_sendmsg()
  ocfs2: don't open-code kernel_sendmsg()
  take iov_iter stuff to mm/iov_iter.c
  process_vm_access: tidy up a bit
  ...
</content>
</entry>
<entry>
<title>Merge git://git.infradead.org/users/willy/linux-nvme</title>
<updated>2014-04-11T23:45:59Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-04-11T23:45:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3e8072d48b2dd0898e99698018b2045f8cd49965'/>
<id>urn:sha1:3e8072d48b2dd0898e99698018b2045f8cd49965</id>
<content type='text'>
Pull NVMe driver updates from Matthew Wilcox:
 "Various updates to the NVMe driver.  The most user-visible change is
  that drive hotplugging now works and CPU hotplug while an NVMe drive
  is installed should also work better"

* git://git.infradead.org/users/willy/linux-nvme:
  NVMe: Retry failed commands with non-fatal errors
  NVMe: Add getgeo to block ops
  NVMe: Start-stop nvme_thread during device add-remove.
  NVMe: Make I/O timeout a module parameter
  NVMe: CPU hot plug notification
  NVMe: per-cpu io queues
  NVMe: Replace DEFINE_PCI_DEVICE_TABLE
  NVMe: Fix divide-by-zero in nvme_trans_io_get_num_cmds
  NVMe: IOCTL path RCU protect queue access
  NVMe: RCU protected access to io queues
  NVMe: Initialize device reference count earlier
  NVMe: Add CONFIG_PM_SLEEP to suspend/resume functions
</content>
</entry>
<entry>
<title>NVMe: Retry failed commands with non-fatal errors</title>
<updated>2014-04-10T21:11:59Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-04-03T22:45:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=edd10d33283899fb15d99a290dcc9ceb3604ca78'/>
<id>urn:sha1:edd10d33283899fb15d99a290dcc9ceb3604ca78</id>
<content type='text'>
For commands returned with failed status, queue these for resubmission
and continue retrying them until success or for a limited amount of
time. The final timeout was arbitrarily chosen so requests can't be
retried indefinitely.

Since these are requeued on the nvmeq that submitted the command, the
callbacks have to take an nvmeq instead of an nvme_dev as a parameter
so that we can use the locked queue to append the iod to retry later.

The nvme_iod conviently can be used to track how long we've been trying
to successfully complete an iod request. The nvme_iod also provides the
nvme prp dma mappings, so I had to move a few things around so we can
keep those mappings.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
[fixed checkpatch issue with long line]
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Add getgeo to block ops</title>
<updated>2014-04-10T21:06:11Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-04-02T21:45:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4cc09e2dc4cbe6009c935b6f12a8376f09124bc5'/>
<id>urn:sha1:4cc09e2dc4cbe6009c935b6f12a8376f09124bc5</id>
<content type='text'>
Some programs require HDIO_GETGEO work, which requires we implement
getgeo.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Start-stop nvme_thread during device add-remove.</title>
<updated>2014-04-10T21:04:46Z</updated>
<author>
<name>Dan McLeran</name>
<email>daniel.mcleran@intel.com</email>
</author>
<published>2014-04-07T23:10:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b9afca3efb18a9b8392cb544a3e29e8b1168400c'/>
<id>urn:sha1:b9afca3efb18a9b8392cb544a3e29e8b1168400c</id>
<content type='text'>
Done to ensure nvme_thread is not running when there
are no devices to poll.

Signed-off-by: Dan McLeran &lt;daniel.mcleran@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Make I/O timeout a module parameter</title>
<updated>2014-04-10T21:04:38Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-04-04T17:43:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b355084a891985d4cd0ca23b1a83366af2c4232d'/>
<id>urn:sha1:b355084a891985d4cd0ca23b1a83366af2c4232d</id>
<content type='text'>
Increase the default timeout to 30 seconds to match SCSI.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
[use byte instead of ushort]
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: CPU hot plug notification</title>
<updated>2014-04-10T21:03:42Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-03-24T16:46:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=33b1e95c90447ea73e37e837ea0268a894919f19'/>
<id>urn:sha1:33b1e95c90447ea73e37e837ea0268a894919f19</id>
<content type='text'>
Registers with hot cpu notification to rebalance, and potentially allocate
additional, io queues.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
</feed>
