From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
alan@lxorguk.ukuu.org.uk, Dmitry Monakhov <dmonakhov@openvz.org>,
"Theodore Tso" <tytso@mit.edu>
Subject: [ 069/120] ext4: move_extent code cleanup
Date: Thu, 11 Oct 2012 10:00:21 +0900 [thread overview]
Message-ID: <20121011005838.773877453@linuxfoundation.org> (raw)
In-Reply-To: <20121011005825.364610894@linuxfoundation.org>
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dmitry Monakhov <dmonakhov@openvz.org>
commit 03bd8b9b896c8e940f282f540e6b4de90d666b7c upstream.
- Remove usless checks, because it is too late to check that inode != NULL
at the moment it was referenced several times.
- Double lock routines looks very ugly and locking ordering relays on
order of i_ino, but other kernel code rely on order of pointers.
Let's make them simple and clean.
- check that inodes belongs to the same SB as soon as possible.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ext4/move_extent.c | 167 ++++++++++++++------------------------------------
1 file changed, 47 insertions(+), 120 deletions(-)
--- a/fs/ext4/move_extent.c
+++ b/fs/ext4/move_extent.c
@@ -141,55 +141,21 @@ mext_next_extent(struct inode *inode, st
}
/**
- * mext_check_null_inode - NULL check for two inodes
- *
- * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0.
- */
-static int
-mext_check_null_inode(struct inode *inode1, struct inode *inode2,
- const char *function, unsigned int line)
-{
- int ret = 0;
-
- if (inode1 == NULL) {
- __ext4_error(inode2->i_sb, function, line,
- "Both inodes should not be NULL: "
- "inode1 NULL inode2 %lu", inode2->i_ino);
- ret = -EIO;
- } else if (inode2 == NULL) {
- __ext4_error(inode1->i_sb, function, line,
- "Both inodes should not be NULL: "
- "inode1 %lu inode2 NULL", inode1->i_ino);
- ret = -EIO;
- }
- return ret;
-}
-
-/**
* double_down_write_data_sem - Acquire two inodes' write lock of i_data_sem
*
- * @orig_inode: original inode structure
- * @donor_inode: donor inode structure
- * Acquire write lock of i_data_sem of the two inodes (orig and donor) by
- * i_ino order.
+ * Acquire write lock of i_data_sem of the two inodes
*/
static void
-double_down_write_data_sem(struct inode *orig_inode, struct inode *donor_inode)
+double_down_write_data_sem(struct inode *first, struct inode *second)
{
- struct inode *first = orig_inode, *second = donor_inode;
+ if (first < second) {
+ down_write(&EXT4_I(first)->i_data_sem);
+ down_write_nested(&EXT4_I(second)->i_data_sem, SINGLE_DEPTH_NESTING);
+ } else {
+ down_write(&EXT4_I(second)->i_data_sem);
+ down_write_nested(&EXT4_I(first)->i_data_sem, SINGLE_DEPTH_NESTING);
- /*
- * Use the inode number to provide the stable locking order instead
- * of its address, because the C language doesn't guarantee you can
- * compare pointers that don't come from the same array.
- */
- if (donor_inode->i_ino < orig_inode->i_ino) {
- first = donor_inode;
- second = orig_inode;
}
-
- down_write(&EXT4_I(first)->i_data_sem);
- down_write_nested(&EXT4_I(second)->i_data_sem, SINGLE_DEPTH_NESTING);
}
/**
@@ -969,14 +935,6 @@ mext_check_arguments(struct inode *orig_
return -EINVAL;
}
- /* Files should be in the same ext4 FS */
- if (orig_inode->i_sb != donor_inode->i_sb) {
- ext4_debug("ext4 move extent: The argument files "
- "should be in same FS [ino:orig %lu, donor %lu]\n",
- orig_inode->i_ino, donor_inode->i_ino);
- return -EINVAL;
- }
-
/* Ext4 move extent supports only extent based file */
if (!(ext4_test_inode_flag(orig_inode, EXT4_INODE_EXTENTS))) {
ext4_debug("ext4 move extent: orig file is not extents "
@@ -1072,35 +1030,19 @@ mext_check_arguments(struct inode *orig_
* @inode1: the inode structure
* @inode2: the inode structure
*
- * Lock two inodes' i_mutex by i_ino order.
- * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0.
+ * Lock two inodes' i_mutex
*/
-static int
+static void
mext_inode_double_lock(struct inode *inode1, struct inode *inode2)
{
- int ret = 0;
-
- BUG_ON(inode1 == NULL && inode2 == NULL);
-
- ret = mext_check_null_inode(inode1, inode2, __func__, __LINE__);
- if (ret < 0)
- goto out;
-
- if (inode1 == inode2) {
- mutex_lock(&inode1->i_mutex);
- goto out;
- }
-
- if (inode1->i_ino < inode2->i_ino) {
+ BUG_ON(inode1 == inode2);
+ if (inode1 < inode2) {
mutex_lock_nested(&inode1->i_mutex, I_MUTEX_PARENT);
mutex_lock_nested(&inode2->i_mutex, I_MUTEX_CHILD);
} else {
mutex_lock_nested(&inode2->i_mutex, I_MUTEX_PARENT);
mutex_lock_nested(&inode1->i_mutex, I_MUTEX_CHILD);
}
-
-out:
- return ret;
}
/**
@@ -1109,28 +1051,13 @@ out:
* @inode1: the inode that is released first
* @inode2: the inode that is released second
*
- * If inode1 or inode2 is NULL, return -EIO. Otherwise, return 0.
*/
-static int
+static void
mext_inode_double_unlock(struct inode *inode1, struct inode *inode2)
{
- int ret = 0;
-
- BUG_ON(inode1 == NULL && inode2 == NULL);
-
- ret = mext_check_null_inode(inode1, inode2, __func__, __LINE__);
- if (ret < 0)
- goto out;
-
- if (inode1)
- mutex_unlock(&inode1->i_mutex);
-
- if (inode2 && inode2 != inode1)
- mutex_unlock(&inode2->i_mutex);
-
-out:
- return ret;
+ mutex_unlock(&inode1->i_mutex);
+ mutex_unlock(&inode2->i_mutex);
}
/**
@@ -1187,16 +1114,23 @@ ext4_move_extents(struct file *o_filp, s
ext4_lblk_t block_end, seq_start, add_blocks, file_end, seq_blocks = 0;
ext4_lblk_t rest_blocks;
pgoff_t orig_page_offset = 0, seq_end_page;
- int ret1, ret2, depth, last_extent = 0;
+ int ret, depth, last_extent = 0;
int blocks_per_page = PAGE_CACHE_SIZE >> orig_inode->i_blkbits;
int data_offset_in_page;
int block_len_in_page;
int uninit;
- /* orig and donor should be different file */
- if (orig_inode->i_ino == donor_inode->i_ino) {
+ if (orig_inode->i_sb != donor_inode->i_sb) {
+ ext4_debug("ext4 move extent: The argument files "
+ "should be in same FS [ino:orig %lu, donor %lu]\n",
+ orig_inode->i_ino, donor_inode->i_ino);
+ return -EINVAL;
+ }
+
+ /* orig and donor should be different inodes */
+ if (orig_inode == donor_inode) {
ext4_debug("ext4 move extent: The argument files should not "
- "be same file [ino:orig %lu, donor %lu]\n",
+ "be same inode [ino:orig %lu, donor %lu]\n",
orig_inode->i_ino, donor_inode->i_ino);
return -EINVAL;
}
@@ -1210,16 +1144,14 @@ ext4_move_extents(struct file *o_filp, s
}
/* Protect orig and donor inodes against a truncate */
- ret1 = mext_inode_double_lock(orig_inode, donor_inode);
- if (ret1 < 0)
- return ret1;
+ mext_inode_double_lock(orig_inode, donor_inode);
/* Protect extent tree against block allocations via delalloc */
double_down_write_data_sem(orig_inode, donor_inode);
/* Check the filesystem environment whether move_extent can be done */
- ret1 = mext_check_arguments(orig_inode, donor_inode, orig_start,
+ ret = mext_check_arguments(orig_inode, donor_inode, orig_start,
donor_start, &len);
- if (ret1)
+ if (ret)
goto out;
file_end = (i_size_read(orig_inode) - 1) >> orig_inode->i_blkbits;
@@ -1227,13 +1159,13 @@ ext4_move_extents(struct file *o_filp, s
if (file_end < block_end)
len -= block_end - file_end;
- ret1 = get_ext_path(orig_inode, block_start, &orig_path);
- if (ret1)
+ ret = get_ext_path(orig_inode, block_start, &orig_path);
+ if (ret)
goto out;
/* Get path structure to check the hole */
- ret1 = get_ext_path(orig_inode, block_start, &holecheck_path);
- if (ret1)
+ ret = get_ext_path(orig_inode, block_start, &holecheck_path);
+ if (ret)
goto out;
depth = ext_depth(orig_inode);
@@ -1252,13 +1184,13 @@ ext4_move_extents(struct file *o_filp, s
last_extent = mext_next_extent(orig_inode,
holecheck_path, &ext_cur);
if (last_extent < 0) {
- ret1 = last_extent;
+ ret = last_extent;
goto out;
}
last_extent = mext_next_extent(orig_inode, orig_path,
&ext_dummy);
if (last_extent < 0) {
- ret1 = last_extent;
+ ret = last_extent;
goto out;
}
seq_start = le32_to_cpu(ext_cur->ee_block);
@@ -1272,7 +1204,7 @@ ext4_move_extents(struct file *o_filp, s
if (le32_to_cpu(ext_cur->ee_block) > block_end) {
ext4_debug("ext4 move extent: The specified range of file "
"may be the hole\n");
- ret1 = -EINVAL;
+ ret = -EINVAL;
goto out;
}
@@ -1292,7 +1224,7 @@ ext4_move_extents(struct file *o_filp, s
last_extent = mext_next_extent(orig_inode, holecheck_path,
&ext_cur);
if (last_extent < 0) {
- ret1 = last_extent;
+ ret = last_extent;
break;
}
add_blocks = ext4_ext_get_actual_len(ext_cur);
@@ -1349,18 +1281,18 @@ ext4_move_extents(struct file *o_filp, s
orig_page_offset,
data_offset_in_page,
block_len_in_page, uninit,
- &ret1);
+ &ret);
/* Count how many blocks we have exchanged */
*moved_len += block_len_in_page;
- if (ret1 < 0)
+ if (ret < 0)
break;
if (*moved_len > len) {
EXT4_ERROR_INODE(orig_inode,
"We replaced blocks too much! "
"sum of replaced: %llu requested: %llu",
*moved_len, len);
- ret1 = -EIO;
+ ret = -EIO;
break;
}
@@ -1374,22 +1306,22 @@ ext4_move_extents(struct file *o_filp, s
}
double_down_write_data_sem(orig_inode, donor_inode);
- if (ret1 < 0)
+ if (ret < 0)
break;
/* Decrease buffer counter */
if (holecheck_path)
ext4_ext_drop_refs(holecheck_path);
- ret1 = get_ext_path(orig_inode, seq_start, &holecheck_path);
- if (ret1)
+ ret = get_ext_path(orig_inode, seq_start, &holecheck_path);
+ if (ret)
break;
depth = holecheck_path->p_depth;
/* Decrease buffer counter */
if (orig_path)
ext4_ext_drop_refs(orig_path);
- ret1 = get_ext_path(orig_inode, seq_start, &orig_path);
- if (ret1)
+ ret = get_ext_path(orig_inode, seq_start, &orig_path);
+ if (ret)
break;
ext_cur = holecheck_path[depth].p_ext;
@@ -1412,12 +1344,7 @@ out:
kfree(holecheck_path);
}
double_up_write_data_sem(orig_inode, donor_inode);
- ret2 = mext_inode_double_unlock(orig_inode, donor_inode);
+ mext_inode_double_unlock(orig_inode, donor_inode);
- if (ret1)
- return ret1;
- else if (ret2)
- return ret2;
-
- return 0;
+ return ret;
}
next prev parent reply other threads:[~2012-10-11 1:28 UTC|newest]
Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-11 0:59 [ 000/120] 3.4.14-stable review Greg Kroah-Hartman
2012-10-11 0:59 ` [ 001/120] mn10300: only add -mmem-funcs to KBUILD_CFLAGS if gcc supports it Greg Kroah-Hartman
2012-10-11 0:59 ` [ 002/120] kbuild: make: fix if_changed when command contains backslashes Greg Kroah-Hartman
2012-10-11 0:59 ` [ 003/120] kbuild: Fix gcc -x syntax Greg Kroah-Hartman
2012-10-11 0:59 ` [ 004/120] slab: fix the DEADLOCK issue on l3 alien lock Greg Kroah-Hartman
2012-10-18 13:20 ` Steven Rostedt
2012-10-18 17:14 ` Greg Kroah-Hartman
2012-10-18 18:04 ` Steven Rostedt
2012-10-11 0:59 ` [ 005/120] intel-iommu: Default to non-coherent for domains unattached to iommus Greg Kroah-Hartman
2012-10-11 0:59 ` [ 006/120] media: rc: ite-cir: Initialise ite_dev::rdev earlier Greg Kroah-Hartman
2012-10-11 0:59 ` [ 007/120] media: gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK Greg Kroah-Hartman
2012-10-11 0:59 ` [ 008/120] ACPI: run _OSC after ACPI_FULL_INITIALIZATION Greg Kroah-Hartman
2012-10-11 0:59 ` [ 009/120] PCI: acpiphp: check whether _ADR evaluation succeeded Greg Kroah-Hartman
2012-10-11 0:59 ` [ 010/120] mfd: max8925: Move _IO resources out of ioport_ioresource Greg Kroah-Hartman
2012-10-11 0:59 ` [ 011/120] lib/gcd.c: prevent possible div by 0 Greg Kroah-Hartman
2012-10-12 21:11 ` Ben Hutchings
2012-10-12 21:16 ` Greg Kroah-Hartman
2012-10-11 0:59 ` [ 012/120] kernel/sys.c: call disable_nonboot_cpus() in kernel_restart() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 013/120] drivers/scsi/atp870u.c: fix bad use of udelay Greg Kroah-Hartman
2012-10-11 0:59 ` [ 014/120] drivers/dma/dmaengine.c: lower the priority of failed to get dma channel message Greg Kroah-Hartman
2012-10-11 0:59 ` [ 015/120] lguest: fix occasional crash in example launcher Greg Kroah-Hartman
2012-10-11 0:59 ` [ 016/120] powerpc/eeh: Fix crash on converting OF node to edev Greg Kroah-Hartman
2012-10-11 0:59 ` [ 017/120] rapidio/rionet: fix multicast packet transmit logic Greg Kroah-Hartman
2012-10-11 0:59 ` [ 018/120] PM / Sleep: use resume event when call dpm_resume_early Greg Kroah-Hartman
2012-10-11 0:59 ` [ 019/120] workqueue: add missing smp_wmb() in process_one_work() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 020/120] jbd2: dont write superblock when if its empty Greg Kroah-Hartman
2012-10-11 0:59 ` [ 021/120] localmodconfig: Fix localyesconfig to set to y not m Greg Kroah-Hartman
2012-10-11 0:59 ` [ 022/120] bnx2x: fix rx checksum validation for IPv6 Greg Kroah-Hartman
2012-10-11 0:59 ` [ 023/120] xfrm: Workaround incompatibility of ESN and async crypto Greg Kroah-Hartman
2012-10-11 0:59 ` [ 024/120] xfrm_user: return error pointer instead of NULL Greg Kroah-Hartman
2012-10-11 0:59 ` [ 025/120] xfrm_user: return error pointer instead of NULL #2 Greg Kroah-Hartman
2012-10-11 0:59 ` [ 026/120] xfrm: fix a read lock imbalance in make_blackhole Greg Kroah-Hartman
2012-10-11 0:59 ` [ 027/120] xfrm_user: fix info leak in copy_to_user_auth() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 028/120] xfrm_user: fix info leak in copy_to_user_state() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 029/120] xfrm_user: fix info leak in copy_to_user_policy() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 030/120] xfrm_user: fix info leak in copy_to_user_tmpl() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 031/120] xfrm_user: dont copy esn replay window twice for new states Greg Kroah-Hartman
2012-10-11 0:59 ` [ 032/120] xfrm_user: ensure user supplied esn replay window is valid Greg Kroah-Hartman
2012-10-11 0:59 ` [ 033/120] net: ethernet: davinci_cpdma: decrease the desc count when cleaning up the remaining packets Greg Kroah-Hartman
2012-10-11 0:59 ` [ 034/120] ixp4xx_hss: fix build failure due to missing linux/module.h inclusion Greg Kroah-Hartman
2012-10-11 0:59 ` [ 035/120] netxen: check for root bus in netxen_mask_aer_correctable Greg Kroah-Hartman
2012-10-11 0:59 ` [ 036/120] net-sched: sch_cbq: avoid infinite loop Greg Kroah-Hartman
2012-10-11 0:59 ` [ 037/120] pkt_sched: fix virtual-start-time update in QFQ Greg Kroah-Hartman
2012-10-11 0:59 ` [ 038/120] sierra_net: Endianess bug fix Greg Kroah-Hartman
2012-10-11 0:59 ` [ 039/120] 8021q: fix mac_len recomputation in vlan_untag() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 040/120] ipv6: release reference of ip6_null_entrys dst entry in __ip6_del_rt Greg Kroah-Hartman
2012-10-11 0:59 ` [ 041/120] ipv6: del unreachable route when an addr is deleted on lo Greg Kroah-Hartman
2012-10-11 0:59 ` [ 042/120] ipv6: fix return value check in fib6_add() Greg Kroah-Hartman
2012-10-11 0:59 ` [ 043/120] tcp: flush DMA queue before sk_wait_data if rcv_wnd is zero Greg Kroah-Hartman
2012-10-11 0:59 ` [ 044/120] sctp: Dont charge for data in sndbuf again when transmitting packet Greg Kroah-Hartman
2012-10-11 0:59 ` [ 045/120] pppoe: drop PPPOX_ZOMBIEs in pppoe_release Greg Kroah-Hartman
2012-10-11 0:59 ` [ 046/120] net: small bug on rxhash calculation Greg Kroah-Hartman
2012-10-11 0:59 ` [ 047/120] net: guard tcp_set_keepalive() to tcp sockets Greg Kroah-Hartman
2012-10-11 1:00 ` [ 048/120] ipv4: raw: fix icmp_filter() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 049/120] ipv6: raw: fix icmpv6_filter() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 050/120] ipv6: mip6: fix mip6_mh_filter() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 051/120] l2tp: fix a typo in l2tp_eth_dev_recv() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 052/120] netrom: copy_datagram_iovec can fail Greg Kroah-Hartman
2012-10-11 1:00 ` [ 053/120] net: do not disable sg for packets requiring no checksum Greg Kroah-Hartman
2012-10-11 1:00 ` [ 054/120] aoe: assert AoE packets marked as " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 055/120] drm/savage: re-add busmaster enable, regression fix Greg Kroah-Hartman
2012-10-11 1:00 ` [ 056/120] SCSI: zfcp: Adapt to new FC_PORTSPEED semantics Greg Kroah-Hartman
2012-10-11 1:00 ` [ 057/120] SCSI: zfcp: Make trace record tags unique Greg Kroah-Hartman
2012-10-11 1:00 ` [ 058/120] SCSI: zfcp: Bounds checking for deferred error trace Greg Kroah-Hartman
2012-10-11 1:00 ` [ 059/120] SCSI: zfcp: Do not wakeup while suspended Greg Kroah-Hartman
2012-10-11 1:00 ` [ 060/120] SCSI: zfcp: remove invalid reference to list iterator variable Greg Kroah-Hartman
2012-10-11 1:00 ` [ 061/120] SCSI: zfcp: restore refcount check on port_remove Greg Kroah-Hartman
2012-10-11 1:00 ` [ 062/120] SCSI: zfcp: only access zfcp_scsi_dev for valid scsi_device Greg Kroah-Hartman
2012-10-11 1:00 ` [ 063/120] PCI: Check P2P bridge for invalid secondary/subordinate range Greg Kroah-Hartman
2012-10-11 1:00 ` [ 064/120] ext4: ignore last group w/o enough space when resizing instead of BUGing Greg Kroah-Hartman
2012-10-11 1:00 ` [ 065/120] ext4: dont copy non-existent gdt blocks when resizing Greg Kroah-Hartman
2012-10-11 1:00 ` [ 066/120] ext4: avoid duplicate writes of the backup bg descriptor blocks Greg Kroah-Hartman
2012-10-11 1:00 ` [ 067/120] ext4: fix potential deadlock in ext4_nonda_switch() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 068/120] ext4: fix crash when accessing /proc/mounts concurrently Greg Kroah-Hartman
2012-10-11 1:00 ` Greg Kroah-Hartman [this message]
2012-10-11 1:00 ` [ 070/120] ext4: online defrag is not supported for journaled files Greg Kroah-Hartman
2012-10-11 1:00 ` [ 071/120] ext4: always set i_op in ext4_mknod() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 072/120] ext4: fix fdatasync() for files with only i_size changes Greg Kroah-Hartman
2012-10-11 1:00 ` [ 073/120] ASoC: wm9712: Fix name of Capture Switch Greg Kroah-Hartman
2012-10-11 1:00 ` [ 074/120] kpageflags: fix wrong KPF_THP on non-huge compound pages Greg Kroah-Hartman
2012-10-11 1:00 ` [ 075/120] hugetlb: do not use vma_hugecache_offset() for vma_prio_tree_foreach Greg Kroah-Hartman
2012-10-11 1:00 ` [ 076/120] mm: fix invalidate_complete_page2() lock ordering Greg Kroah-Hartman
2012-10-11 1:00 ` [ 077/120] mm: thp: fix pmd_present for split_huge_page and PROT_NONE with THP Greg Kroah-Hartman
2012-10-11 1:00 ` [ 078/120] ALSA: aloop - add locking to timer access Greg Kroah-Hartman
2012-10-11 1:00 ` [ 079/120] ALSA: hda/realtek - Fix detection of ALC271X codec Greg Kroah-Hartman
2012-10-11 1:00 ` [ 080/120] ALSA: usb - disable broken hw volume for Tenx TP6911 Greg Kroah-Hartman
2012-10-11 1:00 ` [ 081/120] ALSA: USB: Support for (original) Xbox Communicator Greg Kroah-Hartman
2012-10-11 1:00 ` [ 082/120] drm: Destroy the planes prior to destroying the associated CRTC Greg Kroah-Hartman
2012-10-11 1:00 ` [ 083/120] drm/radeon: only adjust default clocks on NI GPUs Greg Kroah-Hartman
2012-10-11 1:00 ` [ 084/120] drm/radeon: Add MSI quirk for gateway RS690 Greg Kroah-Hartman
2012-10-11 1:00 ` [ 085/120] drm/radeon: force MSIs on RS690 asics Greg Kroah-Hartman
2012-10-11 1:00 ` [ 086/120] ia64: Add missing RCU idle APIs on idle loop Greg Kroah-Hartman
2012-10-11 1:00 ` [ 087/120] h8300: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 088/120] parisc: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 089/120] xtensa: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 090/120] frv: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 091/120] mn10300: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 092/120] m68k: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 093/120] alpha: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 094/120] cris: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 095/120] m32r: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 096/120] score: " Greg Kroah-Hartman
2012-10-11 1:00 ` [ 097/120] rcu: Fix day-one dyntick-idle stall-warning bug Greg Kroah-Hartman
2012-10-12 22:14 ` Ben Hutchings
2012-10-14 23:32 ` Paul E. McKenney
2012-10-14 23:54 ` Ben Hutchings
2012-10-15 1:07 ` Paul E. McKenney
2012-10-11 1:00 ` [ 098/120] r8169: Config1 is read-only on 8168c and later Greg Kroah-Hartman
2012-10-11 1:00 ` [ 099/120] r8169: 8168c and later require bit 0x20 to be set in Config2 for PME signaling Greg Kroah-Hartman
2012-10-11 1:00 ` [ 100/120] revert "mm: mempolicy: Let vma_merge and vma_split handle vma->vm_policy linkages" Greg Kroah-Hartman
2012-10-11 1:00 ` [ 101/120] mempolicy: remove mempolicy sharing Greg Kroah-Hartman
2012-10-11 1:00 ` [ 102/120] mempolicy: fix a race in shared_policy_replace() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 103/120] mempolicy: fix refcount leak in mpol_set_shared_policy() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 104/120] mempolicy: fix a memory corruption by refcount imbalance in alloc_pages_vma() Greg Kroah-Hartman
2012-10-11 1:00 ` [ 105/120] efi: Build EFI stub with EFI-appropriate options Greg Kroah-Hartman
2012-10-11 1:00 ` [ 106/120] efi: initialize efi.runtime_version to make query_variable_info/update_capsule workable Greg Kroah-Hartman
2012-10-11 1:00 ` [ 107/120] CPU hotplug, cpusets, suspend: Dont modify cpusets during suspend/resume Greg Kroah-Hartman
2012-10-11 1:01 ` [ 108/120] mtd: mtdpart: break it as soon as we parse out the partitions Greg Kroah-Hartman
2012-10-11 1:01 ` [ 109/120] mtd: autcpu12-nvram: Fix compile breakage Greg Kroah-Hartman
2012-10-11 1:01 ` [ 110/120] mtd: nandsim: bugfix: fail if overridesize is too big Greg Kroah-Hartman
2012-10-11 1:01 ` [ 111/120] mtd: nand: Use the mirror BBT descriptor when reading its version Greg Kroah-Hartman
2012-10-11 1:01 ` [ 112/120] mtd: omap2: fix omap_nand_remove segfault Greg Kroah-Hartman
2012-10-11 1:01 ` [ 113/120] mtd: omap2: fix module loading Greg Kroah-Hartman
2012-10-11 1:01 ` [ 114/120] mmc: omap_hsmmc: Pass on the suspend failure to the PM core Greg Kroah-Hartman
2012-10-11 1:01 ` [ 115/120] mmc: sh-mmcif: avoid oops on spurious interrupts Greg Kroah-Hartman
2012-10-11 1:01 ` [ 116/120] JFFS2: dont fail on bitflips in OOB Greg Kroah-Hartman
2012-10-11 1:01 ` [ 117/120] cifs: reinstate the forcegid option Greg Kroah-Hartman
2012-10-11 1:01 ` [ 118/120] Convert properly UTF-8 to UTF-16 Greg Kroah-Hartman
2012-10-11 1:01 ` [ 119/120] udf: fix retun value on error path in udf_load_logicalvol Greg Kroah-Hartman
2012-10-11 1:01 ` [ 120/120] sched: Fix migration thread runtime bogosity Greg Kroah-Hartman
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=20121011005838.773877453@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=dmonakhov@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tytso@mit.edu \
/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