From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Trond Myklebust <Trond.Myklebust@netapp.com>
Subject: [ 047/150] NFSv4.1: Fix bulk recall and destroy of layouts
Date: Tue, 26 Feb 2013 15:55:04 -0800 [thread overview]
Message-ID: <20130226235529.079826748@linuxfoundation.org> (raw)
In-Reply-To: <20130226235523.930663721@linuxfoundation.org>
3.8-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <Trond.Myklebust@netapp.com>
commit fd9a8d7160937f94aad36ac80d7255b4988740ac upstream.
The current code in pnfs_destroy_all_layouts() assumes that removing
the layout from the server->layouts list is sufficient to make it
invisible to other processes. This ignores the fact that most
users access the layout through the nfs_inode->layout...
There is further breakage due to lack of reference counting of the
layouts, meaning that the whole thing Oopses at the drop of a hat.
The code in initiate_bulk_draining() is almost correct, and can be
used as a model for pnfs_destroy_all_layouts(), so move that
code to pnfs.c, and refactor the code to allow us to choose between
a single filesystem bulk recall, and a recall of all layouts.
Also note that initiate_bulk_draining() currently calls iput() while
holding locks. Fix that too.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/nfs/callback_proc.c | 61 ++-----------------
fs/nfs/pnfs.c | 150 ++++++++++++++++++++++++++++++++++++++++++-------
fs/nfs/pnfs.h | 7 +-
3 files changed, 144 insertions(+), 74 deletions(-)
--- a/fs/nfs/callback_proc.c
+++ b/fs/nfs/callback_proc.c
@@ -183,60 +183,15 @@ static u32 initiate_file_draining(struct
static u32 initiate_bulk_draining(struct nfs_client *clp,
struct cb_layoutrecallargs *args)
{
- struct nfs_server *server;
- struct pnfs_layout_hdr *lo;
- struct inode *ino;
- u32 rv = NFS4ERR_NOMATCHING_LAYOUT;
- struct pnfs_layout_hdr *tmp;
- LIST_HEAD(recall_list);
- LIST_HEAD(free_me_list);
- struct pnfs_layout_range range = {
- .iomode = IOMODE_ANY,
- .offset = 0,
- .length = NFS4_MAX_UINT64,
- };
+ int stat;
- spin_lock(&clp->cl_lock);
- rcu_read_lock();
- list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
- if ((args->cbl_recall_type == RETURN_FSID) &&
- memcmp(&server->fsid, &args->cbl_fsid,
- sizeof(struct nfs_fsid)))
- continue;
-
- list_for_each_entry(lo, &server->layouts, plh_layouts) {
- ino = igrab(lo->plh_inode);
- if (!ino)
- continue;
- spin_lock(&ino->i_lock);
- /* Is this layout in the process of being freed? */
- if (NFS_I(ino)->layout != lo) {
- spin_unlock(&ino->i_lock);
- iput(ino);
- continue;
- }
- pnfs_get_layout_hdr(lo);
- spin_unlock(&ino->i_lock);
- list_add(&lo->plh_bulk_recall, &recall_list);
- }
- }
- rcu_read_unlock();
- spin_unlock(&clp->cl_lock);
-
- list_for_each_entry_safe(lo, tmp,
- &recall_list, plh_bulk_recall) {
- ino = lo->plh_inode;
- spin_lock(&ino->i_lock);
- set_bit(NFS_LAYOUT_BULK_RECALL, &lo->plh_flags);
- if (pnfs_mark_matching_lsegs_invalid(lo, &free_me_list, &range))
- rv = NFS4ERR_DELAY;
- list_del_init(&lo->plh_bulk_recall);
- spin_unlock(&ino->i_lock);
- pnfs_free_lseg_list(&free_me_list);
- pnfs_put_layout_hdr(lo);
- iput(ino);
- }
- return rv;
+ if (args->cbl_recall_type == RETURN_FSID)
+ stat = pnfs_destroy_layouts_byfsid(clp, &args->cbl_fsid, true);
+ else
+ stat = pnfs_destroy_layouts_byclid(clp, true);
+ if (stat != 0)
+ return NFS4ERR_DELAY;
+ return NFS4ERR_NOMATCHING_LAYOUT;
}
static u32 do_callback_layoutrecall(struct nfs_client *clp,
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -505,37 +505,147 @@ pnfs_destroy_layout(struct nfs_inode *nf
}
EXPORT_SYMBOL_GPL(pnfs_destroy_layout);
-/*
- * Called by the state manger to remove all layouts established under an
- * expired lease.
- */
-void
-pnfs_destroy_all_layouts(struct nfs_client *clp)
+static bool
+pnfs_layout_add_bulk_destroy_list(struct inode *inode,
+ struct list_head *layout_list)
{
- struct nfs_server *server;
struct pnfs_layout_hdr *lo;
- LIST_HEAD(tmp_list);
+ bool ret = false;
- nfs4_deviceid_mark_client_invalid(clp);
- nfs4_deviceid_purge_client(clp);
+ spin_lock(&inode->i_lock);
+ lo = NFS_I(inode)->layout;
+ if (lo != NULL && list_empty(&lo->plh_bulk_destroy)) {
+ pnfs_get_layout_hdr(lo);
+ list_add(&lo->plh_bulk_destroy, layout_list);
+ ret = true;
+ }
+ spin_unlock(&inode->i_lock);
+ return ret;
+}
+
+/* Caller must hold rcu_read_lock and clp->cl_lock */
+static int
+pnfs_layout_bulk_destroy_byserver_locked(struct nfs_client *clp,
+ struct nfs_server *server,
+ struct list_head *layout_list)
+{
+ struct pnfs_layout_hdr *lo, *next;
+ struct inode *inode;
+
+ list_for_each_entry_safe(lo, next, &server->layouts, plh_layouts) {
+ inode = igrab(lo->plh_inode);
+ if (inode == NULL)
+ continue;
+ list_del_init(&lo->plh_layouts);
+ if (pnfs_layout_add_bulk_destroy_list(inode, layout_list))
+ continue;
+ rcu_read_unlock();
+ spin_unlock(&clp->cl_lock);
+ iput(inode);
+ spin_lock(&clp->cl_lock);
+ rcu_read_lock();
+ return -EAGAIN;
+ }
+ return 0;
+}
+
+static int
+pnfs_layout_free_bulk_destroy_list(struct list_head *layout_list,
+ bool is_bulk_recall)
+{
+ struct pnfs_layout_hdr *lo;
+ struct inode *inode;
+ struct pnfs_layout_range range = {
+ .iomode = IOMODE_ANY,
+ .offset = 0,
+ .length = NFS4_MAX_UINT64,
+ };
+ LIST_HEAD(lseg_list);
+ int ret = 0;
+
+ while (!list_empty(layout_list)) {
+ lo = list_entry(layout_list->next, struct pnfs_layout_hdr,
+ plh_bulk_destroy);
+ dprintk("%s freeing layout for inode %lu\n", __func__,
+ lo->plh_inode->i_ino);
+ inode = lo->plh_inode;
+ spin_lock(&inode->i_lock);
+ list_del_init(&lo->plh_bulk_destroy);
+ lo->plh_block_lgets++; /* permanently block new LAYOUTGETs */
+ if (is_bulk_recall)
+ set_bit(NFS_LAYOUT_BULK_RECALL, &lo->plh_flags);
+ if (pnfs_mark_matching_lsegs_invalid(lo, &lseg_list, &range))
+ ret = -EAGAIN;
+ spin_unlock(&inode->i_lock);
+ pnfs_free_lseg_list(&lseg_list);
+ pnfs_put_layout_hdr(lo);
+ iput(inode);
+ }
+ return ret;
+}
+
+int
+pnfs_destroy_layouts_byfsid(struct nfs_client *clp,
+ struct nfs_fsid *fsid,
+ bool is_recall)
+{
+ struct nfs_server *server;
+ LIST_HEAD(layout_list);
spin_lock(&clp->cl_lock);
rcu_read_lock();
+restart:
list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
- if (!list_empty(&server->layouts))
- list_splice_init(&server->layouts, &tmp_list);
+ if (memcmp(&server->fsid, fsid, sizeof(*fsid)) != 0)
+ continue;
+ if (pnfs_layout_bulk_destroy_byserver_locked(clp,
+ server,
+ &layout_list) != 0)
+ goto restart;
}
rcu_read_unlock();
spin_unlock(&clp->cl_lock);
- while (!list_empty(&tmp_list)) {
- lo = list_entry(tmp_list.next, struct pnfs_layout_hdr,
- plh_layouts);
- dprintk("%s freeing layout for inode %lu\n", __func__,
- lo->plh_inode->i_ino);
- list_del_init(&lo->plh_layouts);
- pnfs_destroy_layout(NFS_I(lo->plh_inode));
+ if (list_empty(&layout_list))
+ return 0;
+ return pnfs_layout_free_bulk_destroy_list(&layout_list, is_recall);
+}
+
+int
+pnfs_destroy_layouts_byclid(struct nfs_client *clp,
+ bool is_recall)
+{
+ struct nfs_server *server;
+ LIST_HEAD(layout_list);
+
+ spin_lock(&clp->cl_lock);
+ rcu_read_lock();
+restart:
+ list_for_each_entry_rcu(server, &clp->cl_superblocks, client_link) {
+ if (pnfs_layout_bulk_destroy_byserver_locked(clp,
+ server,
+ &layout_list) != 0)
+ goto restart;
}
+ rcu_read_unlock();
+ spin_unlock(&clp->cl_lock);
+
+ if (list_empty(&layout_list))
+ return 0;
+ return pnfs_layout_free_bulk_destroy_list(&layout_list, is_recall);
+}
+
+/*
+ * Called by the state manger to remove all layouts established under an
+ * expired lease.
+ */
+void
+pnfs_destroy_all_layouts(struct nfs_client *clp)
+{
+ nfs4_deviceid_mark_client_invalid(clp);
+ nfs4_deviceid_purge_client(clp);
+
+ pnfs_destroy_layouts_byclid(clp, false);
}
/*
@@ -888,7 +998,7 @@ alloc_init_layout_hdr(struct inode *ino,
atomic_set(&lo->plh_refcount, 1);
INIT_LIST_HEAD(&lo->plh_layouts);
INIT_LIST_HEAD(&lo->plh_segs);
- INIT_LIST_HEAD(&lo->plh_bulk_recall);
+ INIT_LIST_HEAD(&lo->plh_bulk_destroy);
lo->plh_inode = ino;
lo->plh_lc_cred = get_rpccred(ctx->state->owner->so_cred);
return lo;
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -132,7 +132,7 @@ struct pnfs_layoutdriver_type {
struct pnfs_layout_hdr {
atomic_t plh_refcount;
struct list_head plh_layouts; /* other client layouts */
- struct list_head plh_bulk_recall; /* clnt list of bulk recalls */
+ struct list_head plh_bulk_destroy;
struct list_head plh_segs; /* layout segments list */
nfs4_stateid plh_stateid;
atomic_t plh_outstanding; /* number of RPCs out */
@@ -196,6 +196,11 @@ struct pnfs_layout_segment *pnfs_layout_
void pnfs_free_lseg_list(struct list_head *tmp_list);
void pnfs_destroy_layout(struct nfs_inode *);
void pnfs_destroy_all_layouts(struct nfs_client *);
+int pnfs_destroy_layouts_byfsid(struct nfs_client *clp,
+ struct nfs_fsid *fsid,
+ bool is_recall);
+int pnfs_destroy_layouts_byclid(struct nfs_client *clp,
+ bool is_recall);
void pnfs_put_layout_hdr(struct pnfs_layout_hdr *lo);
void pnfs_set_layout_stateid(struct pnfs_layout_hdr *lo,
const nfs4_stateid *new,
next prev parent reply other threads:[~2013-02-27 1:10 UTC|newest]
Thread overview: 162+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-26 23:54 [ 000/150] 3.8.1-stable review Greg Kroah-Hartman
2013-02-26 23:54 ` [ 001/150] x86-32, mm: Rip out x86_32 NUMA remapping code Greg Kroah-Hartman
2013-02-26 23:54 ` [ 002/150] x86-32, mm: Remove reference to resume_map_numa_kva() Greg Kroah-Hartman
2013-02-26 23:54 ` [ 003/150] x86-32, mm: Remove reference to alloc_remap() Greg Kroah-Hartman
2013-02-26 23:54 ` [ 004/150] perf tools: Fix build with bison 2.3 and older Greg Kroah-Hartman
2013-02-26 23:54 ` [ 005/150] perf hists: Fix period symbol_conf.field_sep display Greg Kroah-Hartman
2013-02-26 23:54 ` [ 006/150] timeconst.pl: Eliminate Perl warning Greg Kroah-Hartman
2013-02-26 23:54 ` [ 007/150] genirq: Avoid deadlock in spurious handling Greg Kroah-Hartman
2013-02-26 23:54 ` [ 008/150] posix-cpu-timers: Fix nanosleep task_struct leak Greg Kroah-Hartman
2013-02-26 23:54 ` [ 009/150] hrtimer: Prevent hrtimer_enqueue_reprogram race Greg Kroah-Hartman
2013-02-26 23:54 ` [ 010/150] x86: Hyper-V: register clocksource only if its advertised Greg Kroah-Hartman
2013-02-26 23:54 ` [ 011/150] workqueue: un-GPL function delayed_work_timer_fn() Greg Kroah-Hartman
2013-02-26 23:54 ` [ 012/150] ALSA: ali5451: remove irq enabling in pointer callback Greg Kroah-Hartman
2013-02-26 23:54 ` [ 013/150] ALSA: rme32.c irq enabling after spin_lock_irq Greg Kroah-Hartman
2013-02-26 23:54 ` [ 014/150] ALSA: aloop: Fix Oops while PM resume Greg Kroah-Hartman
2013-02-26 23:54 ` [ 015/150] tty: Prevent deadlock in n_gsm driver Greg Kroah-Hartman
2013-02-26 23:54 ` [ 016/150] tty: set_termios/set_termiox should not return -EINTR Greg Kroah-Hartman
2013-02-26 23:54 ` [ 017/150] USB: serial: fix null-pointer dereferences on disconnect Greg Kroah-Hartman
2013-02-26 23:54 ` [ 018/150] serial: imx: Fix recursive locking bug Greg Kroah-Hartman
2013-02-26 23:54 ` [ 019/150] serial_core: Fix type definition for PORT_BRCM_TRUMANAGE Greg Kroah-Hartman
2013-02-28 0:05 ` Ben Hutchings
2013-02-28 0:39 ` Greg Kroah-Hartman
2013-03-03 2:51 ` Ben Hutchings
2013-03-03 3:38 ` Ben Hutchings
2013-03-04 2:41 ` Greg Kroah-Hartman
2013-03-04 3:35 ` Ben Hutchings
2013-02-26 23:54 ` [ 020/150] b43: Increase number of RX DMA slots Greg Kroah-Hartman
2013-02-26 23:54 ` [ 021/150] rtlwifi: rtl8192cu: Fix NULL dereference BUG when using new_id Greg Kroah-Hartman
2013-02-26 23:54 ` [ 022/150] rtlwifi: rtl8192cu: Add new USB ID Greg Kroah-Hartman
2013-02-26 23:54 ` [ 023/150] rtlwifi: usb: allocate URB control message setup_packet and data buffer separately Greg Kroah-Hartman
2013-02-26 23:54 ` [ 024/150] tty vt: fix character insertion overflow Greg Kroah-Hartman
2013-02-26 23:54 ` [ 025/150] xen: Send spinlock IPI to all waiters Greg Kroah-Hartman
2013-02-26 23:54 ` [ 026/150] xen: close evtchn port if binding to irq fails Greg Kroah-Hartman
2013-02-26 23:54 ` [ 027/150] pps: Add pps_lookup_dev() function Greg Kroah-Hartman
2013-02-26 23:54 ` [ 028/150] pps: Use pps_lookup_dev to reduce ldisc coupling Greg Kroah-Hartman
2013-02-26 23:54 ` [ 029/150] pps: Fix a use-after free bug when unregistering a source Greg Kroah-Hartman
2013-02-26 23:54 ` [ 030/150] zram: Fix deadlock bug in partial read/write Greg Kroah-Hartman
2013-02-26 23:54 ` [ 031/150] Driver core: treat unregistered bus_types as having no devices Greg Kroah-Hartman
2013-02-26 23:54 ` [ 032/150] mmu_notifier_unregister NULL Pointer deref and multiple ->release() callouts Greg Kroah-Hartman
2013-02-26 23:54 ` [ 033/150] KVM: s390: Handle hosts not supporting s390-virtio Greg Kroah-Hartman
2013-02-26 23:54 ` [ 034/150] s390/kvm: Fix store status for ACRS/FPRS Greg Kroah-Hartman
2013-02-26 23:54 ` [ 035/150] futex: Revert "futex: Mark get_robust_list as deprecated" Greg Kroah-Hartman
2013-02-26 23:54 ` [ 036/150] inotify: remove broken mask checks causing unmount to be EINVAL Greg Kroah-Hartman
2013-02-26 23:54 ` [ 037/150] fs/block_dev.c: page cache wrongly left invalidated after revalidate_disk() Greg Kroah-Hartman
2013-02-26 23:54 ` [ 038/150] ocfs2: unlock super lock if lockres refresh failed Greg Kroah-Hartman
2013-02-26 23:54 ` [ 039/150] drivers/video/backlight/adp88?0_bl.c: fix resume Greg Kroah-Hartman
2013-02-26 23:54 ` [ 040/150] KEYS: Revert one application of "Fix unreachable code" patch Greg Kroah-Hartman
2013-02-26 23:54 ` [ 041/150] tmpfs: fix use-after-free of mempolicy object Greg Kroah-Hartman
2013-02-26 23:54 ` [ 042/150] mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to discard all pages Greg Kroah-Hartman
2013-02-26 23:55 ` [ 043/150] drivercore: Fix ordering between deferred_probe and exiting initcalls Greg Kroah-Hartman
2013-02-26 23:55 ` [ 044/150] umount oops when remove blocklayoutdriver first Greg Kroah-Hartman
2013-02-26 23:55 ` [ 045/150] NLM: Ensure that we resend all pending blocking locks after a reclaim Greg Kroah-Hartman
2013-02-26 23:55 ` [ 046/150] NFSv4.1: Fix an ABBA locking issue with session and state serialisation Greg Kroah-Hartman
2013-02-26 23:55 ` Greg Kroah-Hartman [this message]
2013-02-26 23:55 ` [ 048/150] NFSv4.1: Dont decode skipped layoutgets Greg Kroah-Hartman
2013-02-26 23:55 ` [ 049/150] p54usb: corrected USB ID for T-Com Sinus 154 data II Greg Kroah-Hartman
2013-02-26 23:55 ` [ 050/150] ALSA: usb-audio: fix Roland A-PRO support Greg Kroah-Hartman
2013-02-26 23:55 ` [ 051/150] ALSA: usb/quirks, fix out-of-bounds access Greg Kroah-Hartman
2013-02-26 23:55 ` [ 052/150] ALSA: usb: Fix Processing Unit Descriptor parsers Greg Kroah-Hartman
2013-02-26 23:55 ` [ 053/150] ALSA: hda - Disable runtime PM for Intel 5 Series/3400 Greg Kroah-Hartman
2013-02-26 23:55 ` [ 054/150] ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open() Greg Kroah-Hartman
2013-02-26 23:55 ` [ 055/150] ALSA: hda - Fix default multichannel HDMI mapping regression Greg Kroah-Hartman
2013-02-26 23:55 ` [ 056/150] ALSA: hda - Workaround for silent output on Sony Vaio VGC-LN51JGB with ALC889 Greg Kroah-Hartman
2013-02-26 23:55 ` [ 057/150] ALSA: hda - Fix broken workaround for HDMI/SPDIF conflicts Greg Kroah-Hartman
2013-02-26 23:55 ` [ 058/150] ALSA: hda - hdmi: ELD shouldnt be valid after unplug Greg Kroah-Hartman
2013-02-26 23:55 ` [ 059/150] GFS2: Get a block reservation before resizing a file Greg Kroah-Hartman
2013-02-26 23:55 ` [ 060/150] sparc64: Fix gfp_flags setting in tsb_grow() Greg Kroah-Hartman
2013-02-26 23:55 ` [ 061/150] sparc64: Handle hugepage TSB being NULL Greg Kroah-Hartman
2013-02-26 23:55 ` [ 062/150] sparc64: Fix tsb_grow() in atomic context Greg Kroah-Hartman
2013-02-26 23:55 ` [ 063/150] sparc64: Fix huge PMD to PTE translation for sun4u in TLB miss handler Greg Kroah-Hartman
2013-02-26 23:55 ` [ 064/150] drm/radeon/dce6: fix display powergating Greg Kroah-Hartman
2013-02-26 23:55 ` [ 065/150] drm/radeon: fix multi-head power profile stability on BTC+ asics Greg Kroah-Hartman
2013-02-26 23:55 ` [ 066/150] drm/radeon: remove overzealous warning in hdmi handling Greg Kroah-Hartman
2013-02-26 23:55 ` [ 067/150] drm/radeon: properly validate the atpx interface Greg Kroah-Hartman
2013-02-26 23:55 ` [ 068/150] drm/udl: make usage as a console safer Greg Kroah-Hartman
2013-02-26 23:55 ` [ 069/150] drm/udl: disable fb_defio by default Greg Kroah-Hartman
2013-02-26 23:55 ` [ 070/150] vgacon/vt: clear buffer attributes when we load a 512 character font (v2) Greg Kroah-Hartman
2013-02-26 23:55 ` [ 071/150] PCI: Fix PCI Express Capability accessors for PCI_EXP_FLAGS Greg Kroah-Hartman
2013-02-26 23:55 ` [ 072/150] drm: dont add inferred modes for monitors that dont support them Greg Kroah-Hartman
2013-02-26 23:55 ` [ 073/150] drm: shut up invalid edid messages Greg Kroah-Hartman
2013-02-26 23:55 ` [ 074/150] drm: Fill depth/bits_per_pixel for C8 format Greg Kroah-Hartman
2013-02-26 23:55 ` [ 075/150] drm: Use C8 instead of RGB332 when determining the format from depth/bpp Greg Kroah-Hartman
2013-02-26 23:55 ` [ 076/150] Revert "drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S" Greg Kroah-Hartman
2013-02-26 23:55 ` [ 077/150] drm/usb: bind driver to correct device Greg Kroah-Hartman
2013-02-26 23:55 ` [ 078/150] intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets Greg Kroah-Hartman
2013-02-26 23:55 ` [ 079/150] get rid of unprotected dereferencing of mnt->mnt_ns Greg Kroah-Hartman
2013-02-26 23:55 ` [ 080/150] drm/i915: Preserve the DDI link reversal configuration Greg Kroah-Hartman
2013-02-26 23:55 ` [ 081/150] drm/i915: Preserve the FDI line reversal override bit on CPT Greg Kroah-Hartman
2013-02-26 23:55 ` [ 082/150] drm/i915: Only run idle processing from i915_gem_retire_requests_worker Greg Kroah-Hartman
2013-02-26 23:55 ` [ 083/150] drm/i915: Fix CAGF for HSW Greg Kroah-Hartman
2013-02-26 23:55 ` [ 084/150] drm/i915: Fix RC6VIDS encode/decode Greg Kroah-Hartman
2013-02-26 23:55 ` [ 085/150] drm/i915: write backlight harder Greg Kroah-Hartman
2013-02-26 23:55 ` [ 086/150] drm/i915: disable shared panel fitter for pipe Greg Kroah-Hartman
2013-02-26 23:55 ` [ 087/150] drm/i915: Set i9xx sdvo clock limits according to specifications Greg Kroah-Hartman
2013-02-26 23:55 ` [ 088/150] drm/i915: add missing \n to UTS_RELEASE in the error_state Greg Kroah-Hartman
2013-02-26 23:55 ` [ 089/150] drm/i915: Use HAS_L3_GPU_CACHE in i915_gem_l3_remap Greg Kroah-Hartman
2013-02-26 23:55 ` [ 090/150] drm/i915: inverted brightness quirk for Acer Aspire 4736Z Greg Kroah-Hartman
2013-02-26 23:55 ` [ 091/150] drm/i915: Handle untiled planes when computing their offsets Greg Kroah-Hartman
2013-02-26 23:55 ` [ 092/150] staging: zsmalloc: Fix TLB coherency and build problem Greg Kroah-Hartman
2013-02-26 23:55 ` [ 093/150] staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors Greg Kroah-Hartman
2013-02-26 23:55 ` [ 094/150] staging: comedi: ni_labpc: set up command4 register *after* command3 Greg Kroah-Hartman
2013-02-26 23:55 ` [ 095/150] staging: comedi: ni_labpc: correct differential channel sequence for AI commands Greg Kroah-Hartman
2013-02-26 23:55 ` [ 096/150] staging: vt6656: revert : 64 bit- Correctly address void structure Greg Kroah-Hartman
2013-02-26 23:55 ` [ 097/150] staging: vt6656: Revert: 64bit fixes: dpc.c incorrect addressing of " Greg Kroah-Hartman
2013-02-26 23:55 ` [ 098/150] staging: vt6656: Fix URB submitted while active warning Greg Kroah-Hartman
2013-02-26 23:55 ` [ 099/150] ASoC: wm2200: correct IN2L and IN3L digital mute Greg Kroah-Hartman
2013-02-26 23:55 ` [ 100/150] ASoC: arizona: Fixed a bug in FLL fractional calculation Greg Kroah-Hartman
2013-02-26 23:55 ` [ 101/150] ARM: 7635/1: versatile: fix the PCI IRQ regression Greg Kroah-Hartman
2013-02-26 23:55 ` [ 102/150] ARM: PXA3xx: program the CSMSADRCFG register Greg Kroah-Hartman
2013-02-26 23:56 ` [ 103/150] ARM: at91/DT: remove atmel,use-dma-* from 9x5 and 9n12 USART nodes Greg Kroah-Hartman
2013-02-26 23:56 ` [ 104/150] ARM: samsung: fix assembly syntax for new gas Greg Kroah-Hartman
2013-02-26 23:56 ` [ 105/150] ARM: i.MX25: clk: parent per5_clk to AHB clock Greg Kroah-Hartman
2013-02-26 23:56 ` [ 106/150] ARM: integrator: ensure ap_syscon_base is initialised when !CONFIG_MMU Greg Kroah-Hartman
2013-02-26 23:56 ` [ 107/150] arm64: compat: use compat_uptr_t type for compat_ucontext.uc_link Greg Kroah-Hartman
2013-02-26 23:56 ` [ 108/150] ARM: 7643/1: sched: correct update_sched_clock() Greg Kroah-Hartman
2013-02-26 23:56 ` [ 109/150] powerpc/kexec: Disable hard IRQ before kexec Greg Kroah-Hartman
2013-02-26 23:56 ` [ 110/150] uprobes/powerpc: Add dependency on single step emulation Greg Kroah-Hartman
2013-02-26 23:56 ` [ 111/150] powerpc/eeh: Fix crash when adding a device in a slot with DDW Greg Kroah-Hartman
2013-02-26 23:56 ` [ 112/150] [PARISC] Purge existing TLB entries in set_pte_at and ptep_set_wrprotect Greg Kroah-Hartman
2013-02-26 23:56 ` [ 113/150] pcmcia/vrc4171: Add missing spinlock init Greg Kroah-Hartman
2013-02-26 23:56 ` [ 114/150] drivers/video: fsl-diu-fb: fix pixel formats for 24 and 16 bpp Greg Kroah-Hartman
2013-02-26 23:56 ` [ 115/150] drivers/video: fsl-diu-fb: fix bugs in interrupt handling Greg Kroah-Hartman
2013-02-26 23:56 ` [ 116/150] fbcon: dont lose the console font across generic->chip driver switch Greg Kroah-Hartman
2013-02-26 23:56 ` [ 117/150] fb: rework locking to fix lock ordering on takeover Greg Kroah-Hartman
2013-02-26 23:56 ` [ 118/150] fb: Yet another band-aid for fixing lockdep mess Greg Kroah-Hartman
2013-02-26 23:56 ` [ 119/150] mmc: sdhci-esdhc-imx: fix host version read Greg Kroah-Hartman
2013-02-26 23:56 ` [ 120/150] mmc: core: expose RPMB partition only for CMD23 capable hosts Greg Kroah-Hartman
2013-02-26 23:56 ` [ 121/150] HID: wiimote: fix nunchuck button parser Greg Kroah-Hartman
2013-02-26 23:56 ` [ 122/150] net: cdc_ncm: fix probing of devices with multiple control interface altsettings Greg Kroah-Hartman
2013-02-26 23:56 ` [ 123/150] xen-netback: correctly return errors from netbk_count_requests() Greg Kroah-Hartman
2013-02-26 23:56 ` [ 124/150] xen-netback: cancel the credit timer when taking the vif down Greg Kroah-Hartman
2013-02-26 23:56 ` [ 125/150] net: fix a compile error when SOCK_REFCNT_DEBUG is enabled Greg Kroah-Hartman
2013-02-26 23:56 ` [ 126/150] xfrm: release neighbor upon dst destruction Greg Kroah-Hartman
2013-02-26 23:56 ` [ 127/150] ppp: set qdisc_tx_busylock to avoid LOCKDEP splat Greg Kroah-Hartman
2013-02-26 23:56 ` [ 128/150] ipv6: fix race condition regarding dst->expires and dst->from Greg Kroah-Hartman
2013-02-26 23:56 ` [ 129/150] ipv4: fix a bug in ping_err() Greg Kroah-Hartman
2013-02-26 23:56 ` [ 130/150] ipv6: use a stronger hash for tcp Greg Kroah-Hartman
2013-02-26 23:56 ` [ 131/150] ipv4: fix error handling in icmp_protocol Greg Kroah-Hartman
2013-02-26 23:56 ` [ 132/150] tcp: fix SYN-data space mis-accounting Greg Kroah-Hartman
2013-02-26 23:56 ` [ 133/150] mlx4_en: fix allocation of device tx_cq Greg Kroah-Hartman
2013-02-26 23:56 ` [ 134/150] mlx4_en: fix allocation of CPU affinity reverse-map Greg Kroah-Hartman
2013-02-26 23:56 ` [ 135/150] sock_diag: Fix out-of-bounds access to sock_diag_handlers[] Greg Kroah-Hartman
2013-02-26 23:56 ` [ 136/150] vlan: adjust vlan_set_encap_proto() for its callers Greg Kroah-Hartman
2013-02-26 23:56 ` [ 137/150] mac80211: always unblock CSA queue stop when disconnecting Greg Kroah-Hartman
2013-02-26 23:56 ` [ 138/150] USB: ehci-omap: Dont free gpios that we didnt request Greg Kroah-Hartman
2013-02-26 23:56 ` [ 139/150] gpio: em: Use irq_domain_add_simple() to fix runtime error Greg Kroah-Hartman
2013-02-26 23:56 ` [ 140/150] dma: sh: Dont use ENODEV for failing slave lookup Greg Kroah-Hartman
2013-02-26 23:56 ` [ 141/150] dca: check against empty dca_domains list before unregister provider Greg Kroah-Hartman
2013-02-26 23:56 ` [ 142/150] USB: option: add and update Alcatel modems Greg Kroah-Hartman
2013-02-26 23:56 ` [ 143/150] USB: option: add Yota / Megafon M100-1 4g modem Greg Kroah-Hartman
2013-02-26 23:56 ` [ 144/150] USB: option: add Huawei "ACM" devices using protocol = vendor Greg Kroah-Hartman
2013-02-26 23:56 ` [ 145/150] USB: ehci-omap: Fix autoloading of module Greg Kroah-Hartman
2013-02-26 23:56 ` [ 146/150] USB: storage: properly handle the endian issues of idProduct Greg Kroah-Hartman
2013-02-26 23:56 ` [ 147/150] USB: usb-storage: unusual_devs update for Super TOP SATA bridge Greg Kroah-Hartman
2013-02-26 23:56 ` [ 148/150] usb: musb: core: fix failure path Greg Kroah-Hartman
2013-02-26 23:56 ` [ 149/150] usb: musb: fix dependency on transceiver driver Greg Kroah-Hartman
2013-02-26 23:56 ` [ 150/150] usb: musb: ux500: use clk_prepare_enable and clk_disable_unprepare Greg Kroah-Hartman
2013-02-27 16:50 ` [ 000/150] 3.8.1-stable review Shuah Khan
2013-02-28 14:51 ` Satoru Takeuchi
2013-02-28 16:24 ` Greg Kroah-Hartman
2013-02-28 22:26 ` Satoru Takeuchi
2013-02-27 23:09 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130226235529.079826748@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Trond.Myklebust@netapp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox