[kernel] r19826 - in dists/trunk/linux/debian: . patches patches/bugfix/all patches/bugfix/arm patches/bugfix/ia64 patches/bugfix/x86 patches/debian patches/features/all patches/features/all/aufs3

Ben Hutchings benh at alioth.debian.org
Tue Feb 19 06:36:34 UTC 2013


Author: benh
Date: Tue Feb 19 06:36:33 2013
New Revision: 19826

Log:
Update to 3.8

Refresh/drop patches as appropriate.
Update aufs to aufs3.x-rcN-20130204.

Deleted:
   dists/trunk/linux/debian/patches/bugfix/all/exec-use-ELOOP-for-max-recursion-depth.patch
   dists/trunk/linux/debian/patches/bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
   dists/trunk/linux/debian/patches/bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch
   dists/trunk/linux/debian/patches/bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
   dists/trunk/linux/debian/patches/bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
   dists/trunk/linux/debian/patches/bugfix/all/sfc-Select-PTP_1588_CLOCK.patch
   dists/trunk/linux/debian/patches/bugfix/arm/lis3l02dq-fix-building-without-irq-to-gpio.patch
   dists/trunk/linux/debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch
Modified:
   dists/trunk/linux/debian/changelog
   dists/trunk/linux/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
   dists/trunk/linux/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch
   dists/trunk/linux/debian/patches/debian/ast-disable-autoload.patch
   dists/trunk/linux/debian/patches/debian/version.patch
   dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-add.patch
   dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-base.patch
   dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-kbuild.patch
   dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-standalone.patch
   dists/trunk/linux/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch
   dists/trunk/linux/debian/patches/series

Modified: dists/trunk/linux/debian/changelog
==============================================================================
--- dists/trunk/linux/debian/changelog	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/changelog	Tue Feb 19 06:36:33 2013	(r19826)
@@ -1,3 +1,12 @@
+linux (3.8-1~experimental.1) UNRELEASED; urgency=low
+
+  * New upstream release: http://kernelnewbies.org/Linux_3.8
+
+  [ Ben Hutchings ]
+  * aufs: Update to aufs3.x-rcN-20130204
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Tue, 19 Feb 2013 05:46:20 +0000
+
 linux (3.7.8-1~experimental.1) experimental; urgency=low
 
   * New upstream stable update:

Modified: dists/trunk/linux/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
==============================================================================
--- dists/trunk/linux/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -66,7 +66,7 @@
  	if (*(u32 *)fw->data != UCODE_MAGIC) {
 --- a/drivers/atm/ambassador.c
 +++ b/drivers/atm/ambassador.c
-@@ -1926,10 +1926,8 @@ static int __devinit ucode_init (loader_
+@@ -1929,10 +1929,8 @@ static int ucode_init(loader_block *lb,
    int res;
  
    res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
@@ -80,7 +80,7 @@
    rec = (const struct ihex_binrec *)fw->data;
 --- a/drivers/atm/fore200e.c
 +++ b/drivers/atm/fore200e.c
-@@ -2519,10 +2519,9 @@ fore200e_load_and_start_fw(struct fore20
+@@ -2505,10 +2505,9 @@ static int fore200e_load_and_start_fw(st
  	return err;
  
      sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
@@ -95,7 +95,7 @@
      fw_size = firmware->size / sizeof(u32);
 --- a/drivers/bluetooth/ath3k.c
 +++ b/drivers/bluetooth/ath3k.c
-@@ -307,10 +307,8 @@ static int ath3k_load_patch(struct usb_d
+@@ -317,10 +317,8 @@ static int ath3k_load_patch(struct usb_d
  		fw_version.rom_version);
  
  	ret = request_firmware(&firmware, filename, &udev->dev);
@@ -107,7 +107,7 @@
  
  	pt_version.rom_version = *(int *)(firmware->data + firmware->size - 8);
  	pt_version.build_version = *(int *)
-@@ -369,10 +367,8 @@ static int ath3k_load_syscfg(struct usb_
+@@ -379,10 +377,8 @@ static int ath3k_load_syscfg(struct usb_
  		fw_version.rom_version, clk_value, ".dfu");
  
  	ret = request_firmware(&firmware, filename, &udev->dev);
@@ -202,7 +202,7 @@
  		       fw->size, fw_name);
 --- a/drivers/dma/imx-sdma.c
 +++ b/drivers/dma/imx-sdma.c
-@@ -1164,10 +1164,8 @@ static void sdma_load_firmware(const str
+@@ -1163,10 +1163,8 @@ static void sdma_load_firmware(const str
  	const struct sdma_script_start_addrs *addr;
  	unsigned short *ram_code;
  
@@ -287,7 +287,7 @@
  		       rdev->me_fw->size, fw_name);
 --- a/drivers/gpu/drm/radeon/r600.c
 +++ b/drivers/gpu/drm/radeon/r600.c
-@@ -2020,10 +2020,6 @@ out:
+@@ -2099,10 +2099,6 @@ out:
  	platform_device_unregister(pdev);
  
  	if (err) {
@@ -313,7 +313,7 @@
  		release_firmware(dev_priv->me_fw);
 --- a/drivers/gpu/drm/radeon/radeon_cp.c
 +++ b/drivers/gpu/drm/radeon/radeon_cp.c
-@@ -542,10 +542,7 @@ static int radeon_cp_init_microcode(drm_
+@@ -528,10 +528,7 @@ static int radeon_cp_init_microcode(drm_
  
  	err = request_firmware(&dev_priv->me_fw, fw_name, &pdev->dev);
  	platform_device_unregister(pdev);
@@ -533,7 +533,7 @@
  	if (state->microcode == NULL) {
 --- a/drivers/media/dvb-frontends/drxk_hard.c
 +++ b/drivers/media/dvb-frontends/drxk_hard.c
-@@ -6275,12 +6275,6 @@ static void load_firmware_cb(const struc
+@@ -6261,12 +6261,6 @@ static void load_firmware_cb(const struc
  
  	dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded");
  	if (!fw) {
@@ -548,7 +548,7 @@
  		/*
 --- a/drivers/media/dvb-frontends/ds3000.c
 +++ b/drivers/media/dvb-frontends/ds3000.c
-@@ -406,12 +406,8 @@ static int ds3000_firmware_ondemand(stru
+@@ -401,12 +401,8 @@ static int ds3000_firmware_ondemand(stru
  				DS3000_DEFAULT_FIRMWARE);
  	ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE,
  				state->i2c->dev.parent);
@@ -560,8 +560,8 @@
  		return ret;
 -	}
  
- 	/* Make sure we don't recurse back through here during loading */
- 	state->skip_fw_load = 1;
+ 	ret = ds3000_load_firmware(fe, fw);
+ 	if (ret)
 --- a/drivers/media/dvb-frontends/nxt200x.c
 +++ b/drivers/media/dvb-frontends/nxt200x.c
 @@ -882,12 +882,8 @@ static int nxt2002_init(struct dvb_front
@@ -686,7 +686,7 @@
  				printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n",
 --- a/drivers/media/dvb-frontends/tda10071.c
 +++ b/drivers/media/dvb-frontends/tda10071.c
-@@ -939,14 +939,8 @@ static int tda10071_init(struct dvb_fron
+@@ -941,14 +941,8 @@ static int tda10071_init(struct dvb_fron
  
  		/* request the firmware, this will block and timeout */
  		ret = request_firmware(&fw, fw_file, priv->i2c->dev.parent);
@@ -838,7 +838,7 @@
  	fw_data = (void *)fw_entry->data;
 --- a/drivers/media/pci/bt8xx/bttv-cards.c
 +++ b/drivers/media/pci/bt8xx/bttv-cards.c
-@@ -3753,10 +3753,8 @@ static int __devinit pvr_boot(struct btt
+@@ -3752,10 +3752,8 @@ static int pvr_boot(struct bttv *btv)
  	int rc;
  
  	rc = request_firmware(&fw_entry, "hcwamc.rbf", &btv->c.pci->dev);
@@ -992,7 +992,7 @@
  
 --- a/drivers/media/pci/cx88/cx88-blackbird.c
 +++ b/drivers/media/pci/cx88/cx88-blackbird.c
-@@ -447,13 +447,8 @@ static int blackbird_load_firmware(struc
+@@ -448,13 +448,8 @@ static int blackbird_load_firmware(struc
  				  &dev->pci->dev);
  
  
@@ -1208,7 +1208,7 @@
  		       fw_tx->size, FIRMWARE_TX);
 --- a/drivers/net/ethernet/alteon/acenic.c
 +++ b/drivers/net/ethernet/alteon/acenic.c
-@@ -2902,11 +2902,8 @@ static int __devinit ace_load_firmware(s
+@@ -2902,11 +2902,8 @@ static int ace_load_firmware(struct net_
  		fw_name = "acenic/tg1.bin";
  
  	ret = request_firmware(&fw, fw_name, &ap->pdev->dev);
@@ -1223,7 +1223,7 @@
  
 --- a/drivers/net/ethernet/broadcom/bnx2.c
 +++ b/drivers/net/ethernet/broadcom/bnx2.c
-@@ -3676,16 +3676,13 @@ static int bnx2_request_uncached_firmwar
+@@ -3680,16 +3680,13 @@ static int bnx2_request_uncached_firmwar
  	}
  
  	rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev);
@@ -1245,7 +1245,7 @@
  	if (bp->mips_firmware->size < sizeof(*mips_fw) ||
 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-@@ -11645,11 +11645,8 @@ static int bnx2x_init_firmware(struct bn
+@@ -11939,11 +11939,8 @@ static int bnx2x_init_firmware(struct bn
  	BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
  
  	rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev);
@@ -1260,7 +1260,7 @@
  	if (rc) {
 --- a/drivers/net/ethernet/broadcom/tg3.c
 +++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -10161,11 +10161,8 @@ static int tg3_request_firmware(struct t
+@@ -10449,11 +10449,8 @@ static int tg3_request_firmware(struct t
  {
  	const __be32 *fw_data;
  
@@ -1331,7 +1331,7 @@
  	if (ret)
 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
 +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-@@ -918,11 +918,8 @@ static int upgrade_fw(struct adapter *ad
+@@ -1008,11 +1008,8 @@ static int upgrade_fw(struct adapter *ad
  	struct device *dev = adap->pdev_dev;
  
  	ret = request_firmware(&fw, FW_FNAME, dev);
@@ -1358,7 +1358,7 @@
  			netif_info(nic, probe, nic->netdev,
 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
 +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
-@@ -594,8 +594,6 @@ static int myri10ge_load_hotplug_firmwar
+@@ -584,8 +584,6 @@ static int myri10ge_load_hotplug_firmwar
  	unsigned i;
  
  	if ((status = request_firmware(&fw, mgp->fw_name, dev)) < 0) {
@@ -1451,16 +1451,15 @@
  	} else
 --- a/drivers/net/wireless/at76c50x-usb.c
 +++ b/drivers/net/wireless/at76c50x-usb.c
-@@ -1554,14 +1554,8 @@ static struct fwentry *at76_load_firmwar
+@@ -1553,13 +1553,8 @@ static struct fwentry *at76_load_firmwar
  
  	at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname);
  	ret = request_firmware(&fwe->fw, fwe->fwname, &udev->dev);
 -	if (ret < 0) {
--		dev_printk(KERN_ERR, &udev->dev, "firmware %s not found!\n",
--			   fwe->fwname);
--		dev_printk(KERN_ERR, &udev->dev,
--			   "you may need to download the firmware from "
--			   "http://developer.berlios.de/projects/at76c503a/\n");
+-		dev_err(&udev->dev, "firmware %s not found!\n",
+-			fwe->fwname);
+-		dev_err(&udev->dev,
+-			"you may need to download the firmware from http://developer.berlios.de/projects/at76c503a/\n");
 +	if (ret)
  		goto exit;
 -	}
@@ -1485,7 +1484,7 @@
  						 &hif_dev->udev->dev);
 --- a/drivers/net/wireless/ath/carl9170/usb.c
 +++ b/drivers/net/wireless/ath/carl9170/usb.c
-@@ -1018,7 +1018,6 @@ static void carl9170_usb_firmware_step2(
+@@ -1025,7 +1025,6 @@ static void carl9170_usb_firmware_step2(
  		return;
  	}
  
@@ -1549,24 +1548,24 @@
  	hdr = (struct b43legacy_fw_header *)((*fw)->data);
 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
 +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
-@@ -3220,10 +3220,8 @@ static int brcmf_sdbrcm_download_code_fi
+@@ -3208,10 +3208,8 @@ static int brcmf_sdbrcm_download_code_fi
  
  	ret = request_firmware(&bus->firmware, BRCMF_SDIO_FW_NAME,
  			       &bus->sdiodev->func[2]->dev);
 -	if (ret) {
--		brcmf_dbg(ERROR, "Fail to request firmware %d\n", ret);
+-		brcmf_err("Fail to request firmware %d\n", ret);
 +	if (ret)
  		return ret;
 -	}
  	bus->fw_ptr = 0;
  
  	memptr = memblock = kmalloc(MEMBLOCK + BRCMF_SDALIGN, GFP_ATOMIC);
-@@ -3339,10 +3337,8 @@ static int brcmf_sdbrcm_download_nvram(s
+@@ -3327,10 +3325,8 @@ static int brcmf_sdbrcm_download_nvram(s
  
  	ret = request_firmware(&bus->firmware, BRCMF_SDIO_NV_NAME,
  			       &bus->sdiodev->func[2]->dev);
 -	if (ret) {
--		brcmf_dbg(ERROR, "Fail to request nvram %d\n", ret);
+-		brcmf_err("Fail to request nvram %d\n", ret);
 +	if (ret)
  		return ret;
 -	}
@@ -1575,7 +1574,7 @@
  
 --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
 +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
-@@ -784,19 +784,13 @@ static int brcms_request_fw(struct brcms
+@@ -807,19 +807,13 @@ static int brcms_request_fw(struct brcms
  		sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i],
  			UCODE_LOADER_API_VER);
  		status = request_firmware(&wl->fw.fw_bin[i], fw_name, device);
@@ -1599,7 +1598,7 @@
  	}
 --- a/drivers/net/wireless/ipw2x00/ipw2100.c
 +++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -8467,12 +8467,8 @@ static int ipw2100_get_firmware(struct i
+@@ -8464,12 +8464,8 @@ static int ipw2100_get_firmware(struct i
  
  	rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev);
  
@@ -1667,7 +1666,7 @@
  	}
 --- a/drivers/net/wireless/mwifiex/main.c
 +++ b/drivers/net/wireless/mwifiex/main.c
-@@ -315,11 +315,8 @@ static void mwifiex_fw_dpc(const struct
+@@ -316,11 +316,8 @@ static void mwifiex_fw_dpc(const struct
  	struct mwifiex_adapter *adapter = context;
  	struct mwifiex_fw_image fw;
  
@@ -1682,7 +1681,7 @@
  	adapter->firmware = firmware;
 --- a/drivers/net/wireless/mwl8k.c
 +++ b/drivers/net/wireless/mwl8k.c
-@@ -5300,16 +5300,12 @@ static int mwl8k_firmware_load_success(s
+@@ -5320,16 +5320,12 @@ static int mwl8k_firmware_load_success(s
  static void mwl8k_fw_state_machine(const struct firmware *fw, void *context)
  {
  	struct mwl8k_priv *priv = context;
@@ -1700,7 +1699,7 @@
  		priv->fw_helper = fw;
  		rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode,
  				      true);
-@@ -5344,11 +5340,8 @@ static void mwl8k_fw_state_machine(const
+@@ -5364,11 +5360,8 @@ static void mwl8k_fw_state_machine(const
  		break;
  
  	case FW_STATE_LOADING_ALT:
@@ -1713,7 +1712,7 @@
  		priv->fw_ucode = fw;
  		rc = mwl8k_firmware_load_success(priv);
  		if (rc)
-@@ -5386,10 +5379,8 @@ retry:
+@@ -5406,10 +5399,8 @@ retry:
  
  	/* Ask userland hotplug daemon for the device firmware */
  	rc = mwl8k_request_firmware(priv, fw_image, nowait);
@@ -1761,7 +1760,7 @@
  
 --- a/drivers/net/wireless/orinoco/orinoco_usb.c
 +++ b/drivers/net/wireless/orinoco/orinoco_usb.c
-@@ -1684,7 +1684,6 @@ static int ezusb_probe(struct usb_interf
+@@ -1683,7 +1683,6 @@ static int ezusb_probe(struct usb_interf
  	if (firmware.size && firmware.code) {
  		ezusb_firmware_download(upriv, &firmware);
  	} else {
@@ -1846,7 +1845,7 @@
  	}
 --- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
 +++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
-@@ -100,7 +100,6 @@ static void rtl92se_fw_cb(const struct f
+@@ -97,7 +97,6 @@ static void rtl92se_fw_cb(const struct f
  			 "Firmware callback routine entered!\n");
  	complete(&rtlpriv->firmware_loading_complete);
  	if (!firmware) {
@@ -2038,7 +2037,7 @@
  	}
 --- a/drivers/scsi/qla2xxx/qla_init.c
 +++ b/drivers/scsi/qla2xxx/qla_init.c
-@@ -4993,8 +4993,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha,
+@@ -5020,8 +5020,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha,
  	/* Load firmware blob. */
  	blob = qla2x00_request_firmware(vha);
  	if (!blob) {
@@ -2047,7 +2046,7 @@
  		ql_log(ql_log_info, vha, 0x0084,
  		    "Firmware images can be retrieved from: "QLA_FW_URL ".\n");
  		return QLA_FUNCTION_FAILED;
-@@ -5095,8 +5093,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *
+@@ -5122,8 +5120,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *
  	/* Load firmware blob. */
  	blob = qla2x00_request_firmware(vha);
  	if (!blob) {
@@ -2058,7 +2057,7 @@
  		    QLA_FW_URL ".\n");
 --- a/drivers/scsi/qla2xxx/qla_nx.c
 +++ b/drivers/scsi/qla2xxx/qla_nx.c
-@@ -2463,11 +2463,8 @@ try_blob_fw:
+@@ -2440,11 +2440,8 @@ try_blob_fw:
  
  	/* Load firmware blob. */
  	blob = ha->hablob = qla2x00_request_firmware(vha);
@@ -2073,7 +2072,7 @@
  	if (qla82xx_validate_firmware_blob(vha,
 --- a/drivers/scsi/qla2xxx/qla_os.c
 +++ b/drivers/scsi/qla2xxx/qla_os.c
-@@ -4889,8 +4889,6 @@ qla2x00_request_firmware(scsi_qla_host_t
+@@ -4902,8 +4902,6 @@ qla2x00_request_firmware(scsi_qla_host_t
  		goto out;
  
  	if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) {
@@ -2084,7 +2083,7 @@
  		goto out;
 --- a/drivers/scsi/qlogicpti.c
 +++ b/drivers/scsi/qlogicpti.c
-@@ -475,11 +475,8 @@ static int __devinit qlogicpti_load_firm
+@@ -475,11 +475,8 @@ static int qlogicpti_load_firmware(struc
  	int i, timeout;
  
  	err = request_firmware(&fw, fwname, &qpti->op->dev);
@@ -2099,7 +2098,7 @@
  		       fw->size, fwname);
 --- a/drivers/staging/comedi/drivers/usbdux.c
 +++ b/drivers/staging/comedi/drivers/usbdux.c
-@@ -2428,11 +2428,8 @@ static void usbdux_firmware_request_comp
+@@ -2371,11 +2371,8 @@ static void usbdux_firmware_request_comp
  	struct usb_interface *uinterf = usbduxsub_tmp->interface;
  	int ret;
  
@@ -2114,7 +2113,7 @@
  	 * we need to upload the firmware here because fw will be
 --- a/drivers/staging/comedi/drivers/usbduxsigma.c
 +++ b/drivers/staging/comedi/drivers/usbduxsigma.c
-@@ -2409,11 +2409,8 @@ static void usbdux_firmware_request_comp
+@@ -2357,11 +2357,8 @@ static void usbdux_firmware_request_comp
  	struct usb_interface *uinterf = usbduxsub_tmp->interface;
  	int ret;
  
@@ -2207,20 +2206,20 @@
  				"go7007 firmware\n", fw_name);
 --- a/drivers/staging/media/go7007/go7007-fw.c
 +++ b/drivers/staging/media/go7007/go7007-fw.c
-@@ -1576,12 +1576,8 @@ int go7007_construct_fw_image(struct go7
+@@ -1575,12 +1575,8 @@ int go7007_construct_fw_image(struct go7
  	default:
  		return -1;
  	}
 -	if (request_firmware(&fw_entry, go->board_info->firmware, go->dev)) {
--		printk(KERN_ERR
--			"go7007: unable to load firmware from file \"%s\"\n",
+-		dev_err(go->dev,
+-			"unable to load firmware from file \"%s\"\n",
 -			go->board_info->firmware);
 +	if (request_firmware(&fw_entry, go->board_info->firmware, go->dev))
  		return -1;
 -	}
  	code = kzalloc(codespace * 2, GFP_KERNEL);
  	if (code == NULL) {
- 		printk(KERN_ERR "go7007: unable to allocate %d bytes for "
+ 		dev_err(go->dev,
 --- a/drivers/staging/media/go7007/s2250-loader.c
 +++ b/drivers/staging/media/go7007/s2250-loader.c
 @@ -98,12 +98,8 @@ static int s2250loader_probe(struct usb_
@@ -2288,7 +2287,7 @@
  		usb_set_intfdata(pusb_intf, NULL);
 --- a/drivers/staging/slicoss/slicoss.c
 +++ b/drivers/staging/slicoss/slicoss.c
-@@ -518,11 +518,8 @@ static int slic_card_download_gbrcv(stru
+@@ -485,11 +485,8 @@ static int slic_card_download_gbrcv(stru
  	}
  
  	ret = request_firmware(&fw, file, &adapter->pcidev->dev);
@@ -2301,8 +2300,8 @@
  
  	rcvucodelen = *(u32 *)(fw->data + index);
  	index += 4;
-@@ -597,11 +594,8 @@ static int slic_card_download(struct ada
- 		break;
+@@ -563,11 +560,8 @@ static int slic_card_download(struct ada
+ 		return -ENOENT;
  	}
  	ret = request_firmware(&fw, file, &adapter->pcidev->dev);
 -	if (ret) {
@@ -2313,25 +2312,26 @@
 -	}
  	numsects = *(u32 *)(fw->data + index);
  	index += 4;
- 	ASSERT(numsects <= 3);
+ 	for (i = 0; i < numsects; i++) {
 --- a/drivers/staging/vt6656/firmware.c
 +++ b/drivers/staging/vt6656/firmware.c
-@@ -76,11 +76,8 @@ FIRMWAREbDownload(
- 		int rc;
+@@ -74,11 +74,8 @@ FIRMWAREbDownload(
+ 	spin_unlock_irq(&pDevice->lock);
  
- 		rc = request_firmware(&pDevice->firmware, FIRMWARE_NAME, dev);
--		if (rc) {
--			dev_err(dev, "firmware file %s request failed (%d)\n",
--				FIRMWARE_NAME, rc);
-+		if (rc)
- 			goto out;
--		}
- 	}
- 	fw = pDevice->firmware;
+ 	rc = request_firmware(&fw, FIRMWARE_NAME, dev);
+-	if (rc) {
+-		dev_err(dev, "firmware file %s request failed (%d)\n",
+-			FIRMWARE_NAME, rc);
+-			goto out;
+-	}
++	if (rc)
++		goto out;
  
+ 	pBuffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL);
+ 	if (!pBuffer)
 --- a/drivers/tty/cyclades.c
 +++ b/drivers/tty/cyclades.c
-@@ -3539,10 +3539,8 @@ static int __devinit cyz_load_fw(struct
+@@ -3539,10 +3539,8 @@ static int cyz_load_fw(struct pci_dev *p
  	int retval;
  
  	retval = request_firmware(&fw, "cyzfirm.bin", &pdev->dev);
@@ -2516,7 +2516,7 @@
  	err = emi26_set_reset(dev,1);
 --- a/drivers/usb/misc/ezusb.c
 +++ b/drivers/usb/misc/ezusb.c
-@@ -91,12 +91,8 @@ static int ezusb_ihex_firmware_download(
+@@ -80,12 +80,8 @@ static int ezusb_ihex_firmware_download(
  	const struct ihex_binrec *record;
  
  	if (request_ihex_firmware(&firmware, firmware_path,
@@ -2542,7 +2542,7 @@
  	}
 --- a/drivers/usb/serial/io_edgeport.c
 +++ b/drivers/usb/serial/io_edgeport.c
-@@ -310,11 +310,8 @@ static void update_edgeport_E2PROM(struc
+@@ -306,11 +306,8 @@ static void update_edgeport_E2PROM(struc
  
  	response = request_ihex_firmware(&fw, fw_name,
  					 &edge_serial->serial->dev->dev);
@@ -2557,7 +2557,7 @@
  	BootMajorVersion = rec->data[0];
 --- a/drivers/usb/serial/io_ti.c
 +++ b/drivers/usb/serial/io_ti.c
-@@ -845,8 +845,6 @@ static int build_i2c_fw_hdr(__u8 *header
+@@ -844,8 +844,6 @@ static int build_i2c_fw_hdr(__u8 *header
  
  	err = request_firmware(&fw, fw_name, dev);
  	if (err) {
@@ -2566,7 +2566,7 @@
  		kfree(buffer);
  		return err;
  	}
-@@ -1404,8 +1402,6 @@ static int download_fw(struct edgeport_s
+@@ -1403,8 +1401,6 @@ static int download_fw(struct edgeport_s
  
  		err = request_firmware(&fw, fw_name, dev);
  		if (err) {
@@ -2605,7 +2605,7 @@
  	if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) {
 --- a/drivers/video/metronomefb.c
 +++ b/drivers/video/metronomefb.c
-@@ -677,10 +677,8 @@ static int __devinit metronomefb_probe(s
+@@ -677,10 +677,8 @@ static int metronomefb_probe(struct plat
  		a) request the waveform file from userspace
  		b) process waveform and decode into metromem */
  	retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev);
@@ -2619,7 +2619,7 @@
  				par);
 --- a/sound/drivers/vx/vx_hwdep.c
 +++ b/sound/drivers/vx/vx_hwdep.c
-@@ -73,10 +73,8 @@ int snd_vx_setup_firmware(struct vx_core
+@@ -71,10 +71,8 @@ int snd_vx_setup_firmware(struct vx_core
  		if (! fw_files[chip->type][i])
  			continue;
  		sprintf(path, "vx/%s", fw_files[chip->type][i]);
@@ -2694,13 +2694,12 @@
  	buf = firmware->data;
 --- a/sound/pci/asihpi/hpidspcd.c
 +++ b/sound/pci/asihpi/hpidspcd.c
-@@ -49,9 +49,6 @@ short hpi_dsp_code_open(u32 adapter, voi
+@@ -49,8 +49,6 @@ short hpi_dsp_code_open(u32 adapter, voi
  	err = request_firmware(&firmware, fw_name, &dev->dev);
  
  	if (err || !firmware) {
--		dev_printk(KERN_ERR, &dev->dev,
--			"%d, request_firmware failed for  %s\n", err,
--			fw_name);
+-		dev_err(&dev->dev, "%d, request_firmware failed for %s\n",
+-			err, fw_name);
  		goto error1;
  	}
  	if (firmware->size < sizeof(header)) {
@@ -2734,26 +2733,27 @@
  	return err;
 --- a/sound/pci/emu10k1/emu10k1_main.c
 +++ b/sound/pci/emu10k1/emu10k1_main.c
-@@ -668,10 +668,8 @@ static int snd_emu1010_load_firmware(str
- 	const struct firmware *fw_entry;
- 
- 	err = request_firmware(&fw_entry, filename, &emu->pci->dev);
--	if (err != 0) {
--		snd_printk(KERN_ERR "firmware: %s not found. Err = %d\n", filename, err);
-+	if (err != 0)
- 		return err;
--	}
- 	snd_printk(KERN_INFO "firmware size = 0x%zx\n", fw_entry->size);
+@@ -854,10 +854,8 @@ static int snd_emu10k1_emu1010_init(stru
+ 		}
  
- 	/* The FPGA is a Xilinx Spartan IIE XC2S50E */
+ 		err = request_firmware(&emu->firmware, filename, &emu->pci->dev);
+-		if (err != 0) {
+-			snd_printk(KERN_ERR "emu1010: firmware: %s not found. Err = %d\n", filename, err);
++		if (err != 0)
+ 			return err;
+-		}
+ 		snd_printk(KERN_INFO "emu1010: firmware file = %s, size = 0x%zx\n",
+ 			   filename, emu->firmware->size);
+ 	}
 --- a/sound/pci/hda/hda_intel.c
 +++ b/sound/pci/hda/hda_intel.c
-@@ -3292,10 +3292,8 @@ static void azx_firmware_cb(const struct
+@@ -3424,11 +3424,8 @@ static void azx_firmware_cb(const struct
  	struct azx *chip = card->private_data;
  	struct pci_dev *pci = chip->pci;
  
 -	if (!fw) {
--		snd_printk(KERN_ERR SFX "Cannot load firmware, aborting\n");
+-		snd_printk(KERN_ERR SFX "%s: Cannot load firmware, aborting\n",
+-			   pci_name(chip->pci));
 +	if (!fw)
  		goto error;
 -	}
@@ -2762,7 +2762,7 @@
  	if (!chip->disabled) {
 --- a/sound/pci/korg1212/korg1212.c
 +++ b/sound/pci/korg1212/korg1212.c
-@@ -2346,7 +2346,6 @@ static int __devinit snd_korg1212_create
+@@ -2346,7 +2346,6 @@ static int snd_korg1212_create(struct sn
  	err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
  	if (err < 0) {
  		release_firmware(dsp_code);
@@ -2772,7 +2772,7 @@
  	}
 --- a/sound/pci/mixart/mixart_hwdep.c
 +++ b/sound/pci/mixart/mixart_hwdep.c
-@@ -566,10 +566,8 @@ int snd_mixart_setup_firmware(struct mix
+@@ -558,10 +558,8 @@ int snd_mixart_setup_firmware(struct mix
  
  	for (i = 0; i < 3; i++) {
  		sprintf(path, "mixart/%s", fw_files[i]);
@@ -2786,7 +2786,7 @@
  		release_firmware(fw_entry);
 --- a/sound/pci/pcxhr/pcxhr_hwdep.c
 +++ b/sound/pci/pcxhr/pcxhr_hwdep.c
-@@ -390,11 +390,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg
+@@ -381,11 +381,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg
  		if (!fw_files[fw_set][i])
  			continue;
  		sprintf(path, "pcxhr/%s", fw_files[fw_set][i]);
@@ -2816,7 +2816,7 @@
  	if (err) {
 --- a/sound/pci/rme9652/hdsp.c
 +++ b/sound/pci/rme9652/hdsp.c
-@@ -5369,10 +5369,8 @@ static int hdsp_request_fw_loader(struct
+@@ -5378,10 +5378,8 @@ static int hdsp_request_fw_loader(struct
  		return -EINVAL;
  	}
  
@@ -2825,12 +2825,12 @@
 +	if (request_firmware(&fw, fwfile, &hdsp->pci->dev))
  		return -ENOENT;
 -	}
- 	if (fw->size < sizeof(hdsp->firmware_cache)) {
+ 	if (fw->size < HDSP_FIRMWARE_SIZE) {
  		snd_printk(KERN_ERR "Hammerfall-DSP: too short firmware size %d (expected %d)\n",
- 			   (int)fw->size, (int)sizeof(hdsp->firmware_cache));
+ 			   (int)fw->size, HDSP_FIRMWARE_SIZE);
 --- a/sound/soc/codecs/wm2000.c
 +++ b/sound/soc/codecs/wm2000.c
-@@ -834,10 +834,8 @@ static int __devinit wm2000_i2c_probe(st
+@@ -834,10 +834,8 @@ static int wm2000_i2c_probe(struct i2c_c
  	}
  
  	ret = request_firmware(&fw, filename, &i2c->dev);

Modified: dists/trunk/linux/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch
==============================================================================
--- dists/trunk/linux/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/bugfix/ia64/nouveau-ACPI-support-is-dependent-on-X86.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -28,7 +28,7 @@
  	  Choose this option for open-source nVidia support.
 --- a/drivers/gpu/drm/nouveau/Makefile
 +++ b/drivers/gpu/drm/nouveau/Makefile
-@@ -186,7 +186,9 @@ nouveau-y += nouveau_mem.o
+@@ -216,7 +216,9 @@ nouveau-y += nouveau_mem.o
  
  # other random bits
  nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o
@@ -46,9 +46,9 @@
  
 -#if defined(CONFIG_ACPI)
 +#if defined(CONFIG_ACPI) && defined(CONFIG_X86)
+ bool nouveau_is_optimus(void);
+ bool nouveau_is_v1_dsm(void);
  void nouveau_register_dsm_handler(void);
- void nouveau_unregister_dsm_handler(void);
- void nouveau_switcheroo_optimus_dsm(void);
 --- a/drivers/gpu/drm/nouveau/core/subdev/bios/base.c
 +++ b/drivers/gpu/drm/nouveau/core/subdev/bios/base.c
 @@ -172,7 +172,7 @@ out:

Modified: dists/trunk/linux/debian/patches/debian/ast-disable-autoload.patch
==============================================================================
--- dists/trunk/linux/debian/patches/debian/ast-disable-autoload.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/debian/ast-disable-autoload.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -16,5 +16,5 @@
 -MODULE_DEVICE_TABLE(pci, pciidlist);
 +/*MODULE_DEVICE_TABLE(pci, pciidlist);*/
  
- static int __devinit
- ast_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ static int ast_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ {

Modified: dists/trunk/linux/debian/patches/debian/version.patch
==============================================================================
--- dists/trunk/linux/debian/patches/debian/version.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/debian/version.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -53,7 +53,7 @@
  #include <asm/uaccess.h>
  #include <asm/io.h>
  #include <linux/atomic.h>
-@@ -181,11 +182,12 @@ static void show_last_breaking_event(str
+@@ -179,11 +180,12 @@ static void show_last_breaking_event(str
   */
  void dump_stack(void)
  {
@@ -68,7 +68,7 @@
  	printk("Process %s (pid: %d, task: %p, ksp: %p)\n",
  	       current->comm, current->pid, current,
  	       (void *) current->thread.ksp);
-@@ -231,11 +233,12 @@ void show_registers(struct pt_regs *regs
+@@ -229,11 +231,12 @@ void show_registers(struct pt_regs *regs
  
  void show_regs(struct pt_regs *regs)
  {
@@ -185,7 +185,7 @@
 +#include <generated/package.h>
  
  #include <asm/cacheflush.h>
- #include <asm/processor.h>
+ #include <asm/idmap.h>
 @@ -278,11 +279,12 @@ void __show_regs(struct pt_regs *regs)
  	unsigned long flags;
  	char buf[64];

Modified: dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-add.patch
==============================================================================
--- dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -250,10 +250,10 @@
 +aufs-$(CONFIG_AUFS_DEBUG) += debug.o
 +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
 --- a/fs/aufs/aufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/aufs.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/aufs.h	2013-02-19 06:25:53.223644734 +0000
 @@ -0,0 +1,60 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -313,10 +313,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_H__ */
 --- a/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/branch.c	2012-12-16 14:11:13.354479811 +0000
++++ b/fs/aufs/branch.c	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,1172 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -1488,10 +1488,10 @@
 +	return err;
 +}
 --- a/fs/aufs/branch.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/branch.h	2012-01-10 02:15:56.000000000 +0000
-@@ -0,0 +1,230 @@
++++ b/fs/aufs/branch.h	2013-02-19 06:25:53.227644734 +0000
+@@ -0,0 +1,236 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -1553,6 +1553,13 @@
 +/* ext2 has 3 types of operations at least, ext3 has 4 */
 +#define AuBrDynOp (AuDyLast * 4)
 +
++#ifdef CONFIG_AUFS_HFSNOTIFY
++/* support for asynchronous destruction */
++struct au_br_hfsnotify {
++	struct fsnotify_group	*hfsn_group;
++};
++#endif
++
 +/* protected by superblock rwsem */
 +struct au_branch {
 +	struct au_xino_file	br_xino;
@@ -1572,8 +1579,7 @@
 +	atomic_t		br_xino_running;
 +
 +#ifdef CONFIG_AUFS_HFSNOTIFY
-+	struct fsnotify_group	*br_hfsn_group;
-+	struct fsnotify_ops	br_hfsn_ops;
++	struct au_br_hfsnotify	*br_hfsn;
 +#endif
 +
 +#ifdef CONFIG_SYSFS
@@ -1762,10 +1768,10 @@
 +
 +-include ${srctree}/${src}/conf_priv.mk
 --- a/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/cpup.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/cpup.c	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,1085 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -2850,10 +2856,10 @@
 +	return err;
 +}
 --- a/fs/aufs/cpup.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/cpup.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/cpup.h	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,81 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -2934,10 +2940,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_CPUP_H__ */
 --- a/fs/aufs/dbgaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dbgaufs.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dbgaufs.c	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,334 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -3271,10 +3277,10 @@
 +	return err;
 +}
 --- a/fs/aufs/dbgaufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dbgaufs.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dbgaufs.h	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,49 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -3323,10 +3329,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __DBGAUFS_H__ */
 --- a/fs/aufs/dcsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dcsub.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dcsub.c	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,243 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -3569,10 +3575,10 @@
 +	return path_is_under(path + 0, path + 1);
 +}
 --- a/fs/aufs/dcsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dcsub.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dcsub.h	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,94 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -3666,10 +3672,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DCSUB_H__ */
 --- a/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/debug.c	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,490 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -4159,10 +4165,10 @@
 +	return 0;
 +}
 --- a/fs/aufs/debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.h	2012-10-29 03:30:14.231048075 +0000
++++ b/fs/aufs/debug.h	2013-02-19 06:25:53.227644734 +0000
 @@ -0,0 +1,242 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -4404,10 +4410,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DEBUG_H__ */
 --- a/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/dentry.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,1060 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -5467,10 +5473,10 @@
 +	.d_release	= aufs_d_release
 +};
 --- a/fs/aufs/dentry.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.h	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/dentry.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,234 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -5704,10 +5710,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DENTRY_H__ */
 --- a/fs/aufs/dinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dinfo.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dinfo.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,543 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -6250,10 +6256,10 @@
 +	return -1;
 +}
 --- a/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dir.c	2012-10-29 03:30:14.231048075 +0000
++++ b/fs/aufs/dir.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,633 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -6886,10 +6892,10 @@
 +	.fsync		= aufs_fsync_dir
 +};
 --- a/fs/aufs/dir.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dir.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dir.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,137 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -7026,10 +7032,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DIR_H__ */
 --- a/fs/aufs/dynop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dynop.c	2012-10-29 03:30:14.231048075 +0000
++++ b/fs/aufs/dynop.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,379 @@
 +/*
-+ * Copyright (C) 2010-2012 Junjiro R. Okajima
++ * Copyright (C) 2010-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -7408,10 +7414,10 @@
 +		WARN_ON(!list_empty(&dynop[i].head));
 +}
 --- a/fs/aufs/dynop.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dynop.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/dynop.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,76 @@
 +/*
-+ * Copyright (C) 2010-2012 Junjiro R. Okajima
++ * Copyright (C) 2010-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -7487,10 +7493,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DYNOP_H__ */
 --- a/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/export.c	2012-12-16 14:11:13.358479829 +0000
-@@ -0,0 +1,811 @@
++++ b/fs/aufs/export.c	2013-02-19 06:25:53.231644735 +0000
+@@ -0,0 +1,812 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -7871,7 +7877,8 @@
 +	dentry = ERR_PTR(err);
 +	if (unlikely(err))
 +		goto out_name;
-+	dentry = ERR_PTR(-ENOENT);
++	/* instead of ENOENT */
++	dentry = ERR_PTR(-ESTALE);
 +	if (!arg.found)
 +		goto out_name;
 +
@@ -8226,7 +8233,7 @@
 +	err = fh[Fh_h_type];
 +	*max_len += Fh_tail;
 +	/* todo: macros? */
-+	if (err != 255)
++	if (err != FILEID_INVALID)
 +		err = 99;
 +	else
 +		AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb));
@@ -8240,7 +8247,7 @@
 +	si_read_unlock(sb);
 +out:
 +	if (unlikely(err < 0))
-+		err = 255;
++		err = FILEID_INVALID;
 +	return err;
 +}
 +
@@ -8301,10 +8308,10 @@
 +	atomic_set(&sbinfo->si_xigen_next, u);
 +}
 --- a/fs/aufs/f_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/f_op.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,723 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -9027,10 +9034,10 @@
 +#endif
 +};
 --- a/fs/aufs/f_op_sp.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op_sp.c	2012-10-29 03:30:14.235048090 +0000
++++ b/fs/aufs/f_op_sp.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,295 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -9325,10 +9332,10 @@
 +	return ret;
 +}
 --- a/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.c	2012-10-29 03:30:14.235048090 +0000
++++ b/fs/aufs/file.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,683 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -10011,10 +10018,10 @@
 +#endif /* CONFIG_AUFS_DEBUG */
 +};
 --- a/fs/aufs/file.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.h	2012-08-01 03:41:52.000000000 +0100
++++ b/fs/aufs/file.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,298 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -10312,10 +10319,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FILE_H__ */
 --- a/fs/aufs/finfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/finfo.c	2012-01-10 02:15:56.000000000 +0000
-@@ -0,0 +1,156 @@
++++ b/fs/aufs/finfo.c	2013-02-19 06:25:53.231644735 +0000
+@@ -0,0 +1,157 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -10443,7 +10450,7 @@
 +
 +int au_finfo_init(struct file *file, struct au_fidir *fidir)
 +{
-+	int err, lc_idx;
++	int err;
 +	struct au_finfo *finfo;
 +	struct dentry *dentry;
 +
@@ -10455,10 +10462,11 @@
 +
 +	err = 0;
 +	au_nfiles_inc(dentry->d_sb);
-+	lc_idx = AuLcNonDir_FIINFO;
-+	if (fidir)
-+		lc_idx = AuLcDir_FIINFO;
-+	au_rw_class(&finfo->fi_rwsem, au_lc_key + lc_idx);
++	/* verbose coding for lock class name */
++	if (!fidir)
++		au_rw_class(&finfo->fi_rwsem, au_lc_key + AuLcNonDir_FIINFO);
++	else
++		au_rw_class(&finfo->fi_rwsem, au_lc_key + AuLcDir_FIINFO);
 +	au_rw_write_lock(&finfo->fi_rwsem);
 +	finfo->fi_btop = -1;
 +	finfo->fi_hdir = fidir;
@@ -10471,10 +10479,10 @@
 +	return err;
 +}
 --- a/fs/aufs/fstype.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/fstype.h	2012-10-29 03:30:14.235048090 +0000
++++ b/fs/aufs/fstype.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,481 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -10955,10 +10963,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FSTYPE_H__ */
 --- a/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hfsnotify.c	2012-10-29 03:30:14.235048090 +0000
-@@ -0,0 +1,257 @@
++++ b/fs/aufs/hfsnotify.c	2013-02-19 06:25:53.231644735 +0000
+@@ -0,0 +1,293 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -10994,12 +11002,13 @@
 +	AuDbg("here\n");
 +	au_cache_free_hnotify(hn);
 +	smp_mb__before_atomic_dec();
-+	atomic64_dec(&au_hfsn_ifree);
-+	wake_up(&au_hfsn_wq);
++	if (atomic64_dec_and_test(&au_hfsn_ifree))
++		wake_up(&au_hfsn_wq);
 +}
 +
 +static int au_hfsn_alloc(struct au_hinode *hinode)
 +{
++	int err;
 +	struct au_hnotify *hn;
 +	struct super_block *sb;
 +	struct au_branch *br;
@@ -11010,6 +11019,8 @@
 +	sb = hn->hn_aufs_inode->i_sb;
 +	bindex = au_br_index(sb, hinode->hi_id);
 +	br = au_sbr(sb, bindex);
++	AuDebugOn(!br->br_hfsn);
++
 +	mark = &hn->hn_mark;
 +	fsnotify_init_mark(mark, au_hfsn_free_mark);
 +	mark->mask = AuHfsnMask;
@@ -11017,21 +11028,30 @@
 +	 * by udba rename or rmdir, aufs assign a new inode to the known
 +	 * h_inode, so specify 1 to allow dups.
 +	 */
-+	return fsnotify_add_mark(mark, br->br_hfsn_group, hinode->hi_inode,
++	err = fsnotify_add_mark(mark, br->br_hfsn->hfsn_group, hinode->hi_inode,
 +				 /*mnt*/NULL, /*allow_dups*/1);
++	/* even if err */
++	fsnotify_put_mark(mark);
++
++	return err;
 +}
 +
 +static int au_hfsn_free(struct au_hinode *hinode, struct au_hnotify *hn)
 +{
 +	struct fsnotify_mark *mark;
 +	unsigned long long ull;
++	struct fsnotify_group *group;
 +
 +	ull = atomic64_inc_return(&au_hfsn_ifree);
 +	BUG_ON(!ull);
 +
 +	mark = &hn->hn_mark;
-+	fsnotify_destroy_mark(mark);
-+	fsnotify_put_mark(mark);
++	spin_lock(&mark->lock);
++	group = mark->group;
++	fsnotify_get_group(group);
++	spin_unlock(&mark->lock);
++	fsnotify_destroy_mark(mark, group);
++	fsnotify_put_group(group);
 +
 +	/* free hn by myself */
 +	return 0;
@@ -11093,6 +11113,14 @@
 +
 +/* ---------------------------------------------------------------------- */
 +
++static void au_hfsn_free_group(struct fsnotify_group *group)
++{
++	struct au_br_hfsnotify *hfsn = group->private;
++
++	AuDbg("here\n");
++	kfree(hfsn);
++}
++
 +static int au_hfsn_handle_event(struct fsnotify_group *group,
 +				struct fsnotify_mark *inode_mark,
 +				struct fsnotify_mark *vfsmount_mark,
@@ -11150,48 +11178,64 @@
 +
 +static struct fsnotify_ops au_hfsn_ops = {
 +	.should_send_event	= au_hfsn_should_send_event,
-+	.handle_event		= au_hfsn_handle_event
++	.handle_event		= au_hfsn_handle_event,
++	.free_group_priv	= au_hfsn_free_group
 +};
 +
 +/* ---------------------------------------------------------------------- */
 +
 +static void au_hfsn_fin_br(struct au_branch *br)
 +{
-+	if (br->br_hfsn_group)
-+		fsnotify_put_group(br->br_hfsn_group);
-+}
++	struct au_br_hfsnotify *hfsn;
 +
-+static int au_hfsn_init_br(struct au_branch *br, int perm)
-+{
-+	br->br_hfsn_group = NULL;
-+	br->br_hfsn_ops = au_hfsn_ops;
-+	return 0;
++	hfsn = br->br_hfsn;
++	if (hfsn)
++		fsnotify_put_group(hfsn->hfsn_group);
 +}
 +
-+static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm)
++static int au_hfsn_init_br(struct au_branch *br, int perm)
 +{
 +	int err;
++	struct fsnotify_group *group;
++	struct au_br_hfsnotify *hfsn;
 +
 +	err = 0;
-+	if (udba != AuOpt_UDBA_HNOTIFY
-+	    || !au_br_hnotifyable(perm)) {
-+		au_hfsn_fin_br(br);
-+		br->br_hfsn_group = NULL;
++	br->br_hfsn = NULL;
++	if (!au_br_hnotifyable(perm))
 +		goto out;
-+	}
 +
-+	if (br->br_hfsn_group)
++	err = -ENOMEM;
++	hfsn = kmalloc(sizeof(*hfsn), GFP_NOFS);
++	if (unlikely(!hfsn))
 +		goto out;
 +
-+	br->br_hfsn_group = fsnotify_alloc_group(&br->br_hfsn_ops);
-+	if (IS_ERR(br->br_hfsn_group)) {
-+		err = PTR_ERR(br->br_hfsn_group);
++	err = 0;
++	group = fsnotify_alloc_group(&au_hfsn_ops);
++	if (IS_ERR(group)) {
++		err = PTR_ERR(group);
 +		pr_err("fsnotify_alloc_group() failed, %d\n", err);
-+		br->br_hfsn_group = NULL;
++		goto out_hfsn;
 +	}
 +
++	group->private = hfsn;
++	hfsn->hfsn_group = group;
++	br->br_hfsn = hfsn;
++	goto out; /* success */
++
++out_hfsn:
++	kfree(hfsn);
 +out:
-+	AuTraceErr(err);
++	return err;
++}
++
++static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm)
++{
++	int err;
++
++	err = 0;
++	if (!br->br_hfsn)
++		err = au_hfsn_init_br(br, perm);
++
 +	return err;
 +}
 +
@@ -11215,10 +11259,10 @@
 +	.init_br	= au_hfsn_init_br
 +};
 --- a/fs/aufs/hfsplus.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hfsplus.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/hfsplus.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,57 @@
 +/*
-+ * Copyright (C) 2010-2012 Junjiro R. Okajima
++ * Copyright (C) 2010-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -11275,10 +11319,10 @@
 +	}
 +}
 --- a/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hnotify.c	2012-10-29 03:30:14.235048090 +0000
++++ b/fs/aufs/hnotify.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,713 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -11991,10 +12035,10 @@
 +		au_hn_destroy_cache();
 +}
 --- a/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op.c	2012-12-16 14:11:13.358479829 +0000
-@@ -0,0 +1,1026 @@
++++ b/fs/aufs/i_op.c	2013-02-19 06:25:53.231644735 +0000
+@@ -0,0 +1,1030 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -12154,7 +12198,7 @@
 +	struct dentry *ret, *parent;
 +	struct inode *inode;
 +	struct super_block *sb;
-+	int err, npositive, lc_idx;
++	int err, npositive;
 +
 +	IMustLock(dir);
 +
@@ -12221,12 +12265,16 @@
 +out_unlock:
 +	di_write_unlock(dentry);
 +	if (inode) {
-+		lc_idx = AuLcNonDir_DIINFO;
-+		if (S_ISLNK(inode->i_mode))
-+			lc_idx = AuLcSymlink_DIINFO;
-+		else if (S_ISDIR(inode->i_mode))
-+			lc_idx = AuLcDir_DIINFO;
-+		au_rw_class(&au_di(dentry)->di_rwsem, au_lc_key + lc_idx);
++		/* verbose coding for lock class name */
++		if (unlikely(S_ISLNK(inode->i_mode)))
++			au_rw_class(&au_di(dentry)->di_rwsem,
++				    au_lc_key + AuLcSymlink_DIINFO);
++		else if (unlikely(S_ISDIR(inode->i_mode)))
++			au_rw_class(&au_di(dentry)->di_rwsem,
++				    au_lc_key + AuLcDir_DIINFO);
++		else /* likely */
++			au_rw_class(&au_di(dentry)->di_rwsem,
++				    au_lc_key + AuLcNonDir_DIINFO);
 +	}
 +out_si:
 +	si_read_unlock(sb);
@@ -13020,10 +13068,10 @@
 +	.update_time	= aufs_update_time
 +};
 --- a/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_add.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/i_op_add.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,713 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -13736,10 +13784,10 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_del.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/i_op_del.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,477 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -14216,10 +14264,10 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_ren.c	2012-10-29 03:30:14.239048114 +0000
++++ b/fs/aufs/i_op_ren.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,1026 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -15245,10 +15293,10 @@
 +	return err;
 +}
 --- a/fs/aufs/iinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/iinfo.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/iinfo.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,276 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -15524,10 +15572,10 @@
 +	AuRwDestroy(&iinfo->ii_rwsem);
 +}
 --- a/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.c	2012-12-16 14:11:13.358479829 +0000
-@@ -0,0 +1,488 @@
++++ b/fs/aufs/inode.c	2013-02-19 06:25:53.231644735 +0000
+@@ -0,0 +1,492 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -15864,7 +15912,7 @@
 +	struct super_block *sb;
 +	struct mutex *mtx;
 +	ino_t h_ino, ino;
-+	int err, lc_idx;
++	int err;
 +	aufs_bindex_t bstart;
 +
 +	sb = dentry->d_sb;
@@ -15905,12 +15953,16 @@
 +
 +	AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
 +	if (inode->i_state & I_NEW) {
-+		lc_idx = AuLcNonDir_IIINFO;
-+		if (S_ISLNK(h_inode->i_mode))
-+			lc_idx = AuLcSymlink_IIINFO;
-+		else if (S_ISDIR(h_inode->i_mode))
-+			lc_idx = AuLcDir_IIINFO;
-+		au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
++		/* verbose coding for lock class name */
++		if (unlikely(S_ISLNK(h_inode->i_mode)))
++			au_rw_class(&au_ii(inode)->ii_rwsem,
++				    au_lc_key + AuLcSymlink_IIINFO);
++		else if (unlikely(S_ISDIR(h_inode->i_mode)))
++			au_rw_class(&au_ii(inode)->ii_rwsem,
++				    au_lc_key + AuLcDir_IIINFO);
++		else /* likely */
++			au_rw_class(&au_ii(inode)->ii_rwsem,
++				    au_lc_key + AuLcNonDir_IIINFO);
 +
 +		ii_write_lock_new_child(inode);
 +		err = set_inode(inode, dentry);
@@ -16015,10 +16067,10 @@
 +	return au_test_h_perm(h_inode, mask);
 +}
 --- a/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.h	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/inode.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,588 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -16085,7 +16137,7 @@
 +struct au_vdir;
 +struct au_iinfo {
 +	spinlock_t		ii_genspin;
-+	struct au_iigen 	ii_generation;
++	struct au_iigen		ii_generation;
 +	struct super_block	*ii_hsb1;	/* no get/put */
 +
 +	struct au_rwsem		ii_rwsem;
@@ -16606,10 +16658,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_INODE_H__ */
 --- a/fs/aufs/ioctl.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/ioctl.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/ioctl.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,196 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -16805,10 +16857,10 @@
 +#endif
 +#endif
 --- a/fs/aufs/loop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/loop.c	2012-07-22 01:31:00.000000000 +0100
++++ b/fs/aufs/loop.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,133 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -16941,10 +16993,10 @@
 +	kfree(au_warn_loopback_array);
 +}
 --- a/fs/aufs/loop.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/loop.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/loop.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,50 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -17051,10 +17103,10 @@
 +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b
 +endif
 --- a/fs/aufs/module.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/module.c	2012-12-16 14:11:13.358479829 +0000
++++ b/fs/aufs/module.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,202 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -17256,10 +17308,10 @@
 +module_init(aufs_init);
 +module_exit(aufs_exit);
 --- a/fs/aufs/module.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/module.h	2012-03-11 05:01:22.000000000 +0000
++++ b/fs/aufs/module.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,105 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -17364,10 +17416,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_MODULE_H__ */
 --- a/fs/aufs/opts.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/opts.c	2012-07-22 01:31:00.000000000 +0100
++++ b/fs/aufs/opts.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,1677 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -19044,10 +19096,10 @@
 +	return au_mntflags(sb) & AuOptMask_UDBA;
 +}
 --- a/fs/aufs/opts.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/opts.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/opts.h	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,209 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -19256,10 +19308,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_OPTS_H__ */
 --- a/fs/aufs/plink.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/plink.c	2012-10-29 03:30:14.243048129 +0000
++++ b/fs/aufs/plink.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,511 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -19770,10 +19822,10 @@
 +	}
 +}
 --- a/fs/aufs/poll.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/poll.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/poll.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,56 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -19829,10 +19881,10 @@
 +	return mask;
 +}
 --- a/fs/aufs/procfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/procfs.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/procfs.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,170 @@
 +/*
-+ * Copyright (C) 2010-2012 Junjiro R. Okajima
++ * Copyright (C) 2010-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -20002,10 +20054,10 @@
 +	return err;
 +}
 --- a/fs/aufs/rdu.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/rdu.c	2012-10-29 03:30:14.243048129 +0000
++++ b/fs/aufs/rdu.c	2013-02-19 06:25:53.231644735 +0000
 @@ -0,0 +1,384 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -20389,10 +20441,10 @@
 +}
 +#endif
 --- a/fs/aufs/rwsem.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/rwsem.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/rwsem.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,188 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -20580,10 +20632,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_RWSEM_H__ */
 --- a/fs/aufs/sbinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sbinfo.c	2012-12-16 14:11:13.362479850 +0000
++++ b/fs/aufs/sbinfo.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,343 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -20926,10 +20978,10 @@
 +	spin_unlock(&sbinfo->au_si_pid.tree_lock);
 +}
 --- a/fs/aufs/spl.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/spl.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/spl.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,62 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -20991,10 +21043,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_SPL_H__ */
 --- a/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/super.c	2012-12-16 14:11:13.362479850 +0000
++++ b/fs/aufs/super.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,993 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -21987,10 +22039,10 @@
 +	.owner		= THIS_MODULE,
 +};
 --- a/fs/aufs/super.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/super.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/super.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,546 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -22536,10 +22588,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_SUPER_H__ */
 --- a/fs/aufs/sysaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysaufs.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/sysaufs.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,105 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -22644,10 +22696,10 @@
 +	return err;
 +}
 --- a/fs/aufs/sysaufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysaufs.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/sysaufs.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,104 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -22751,10 +22803,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __SYSAUFS_H__ */
 --- a/fs/aufs/sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysfs.c	2012-07-22 01:31:00.000000000 +0100
++++ b/fs/aufs/sysfs.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,257 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -23011,10 +23063,10 @@
 +	}
 +}
 --- a/fs/aufs/sysrq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysrq.c	2012-10-29 03:30:14.243048129 +0000
++++ b/fs/aufs/sysrq.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,148 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -23162,10 +23214,10 @@
 +		pr_err("err %d (ignored)\n", err);
 +}
 --- a/fs/aufs/vdir.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vdir.c	2012-12-16 14:11:13.362479850 +0000
++++ b/fs/aufs/vdir.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,885 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -24050,10 +24102,10 @@
 +	return 0;
 +}
 --- a/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.c	2012-10-29 03:30:14.243048129 +0000
++++ b/fs/aufs/vfsub.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,777 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -24830,10 +24882,10 @@
 +	return err;
 +}
 --- a/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.h	2012-12-16 14:11:13.362479850 +0000
++++ b/fs/aufs/vfsub.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,284 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -25117,10 +25169,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_VFSUB_H__ */
 --- a/fs/aufs/wbr_policy.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/wbr_policy.c	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/wbr_policy.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,700 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -25820,10 +25872,10 @@
 +	}
 +};
 --- a/fs/aufs/whout.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/whout.c	2012-12-16 14:11:13.362479850 +0000
++++ b/fs/aufs/whout.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,1042 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -26865,10 +26917,10 @@
 +	}
 +}
 --- a/fs/aufs/whout.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/whout.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/whout.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,88 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -26956,10 +27008,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WHOUT_H__ */
 --- a/fs/aufs/wkq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/wkq.c	2012-10-29 03:30:14.247048152 +0000
++++ b/fs/aufs/wkq.c	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,214 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -27173,10 +27225,10 @@
 +	return err;
 +}
 --- a/fs/aufs/wkq.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/wkq.h	2012-01-10 02:15:56.000000000 +0000
++++ b/fs/aufs/wkq.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,92 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -27268,10 +27320,10 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WKQ_H__ */
 --- a/fs/aufs/xino.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/xino.c	2012-12-16 14:11:13.362479850 +0000
-@@ -0,0 +1,1264 @@
++++ b/fs/aufs/xino.c	2013-02-19 06:25:53.235644735 +0000
+@@ -0,0 +1,1265 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -27588,7 +27640,8 @@
 +
 +	ii_read_unlock(dir);
 +	if (unlikely(err))
-+		pr_warn("err b%d, (%d)\n", bindex, err);
++		pr_warn("err b%d, upper %llu, (%d)\n",
++			bindex, (unsigned long long)br->br_xino_upper, err);
 +	atomic_dec(&br->br_xino_running);
 +	atomic_dec(&br->br_count);
 +	si_write_unlock(sb);
@@ -28535,10 +28588,10 @@
 +	return err;
 +}
 --- a/include/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/aufs_type.h	2012-12-16 14:11:13.362479850 +0000
++++ b/include/linux/aufs_type.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,19 @@
 +/*
-+ * Copyright (C) 2012 Junjiro R. Okajima
++ * Copyright (C) 2012-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -28557,10 +28610,10 @@
 +
 +#include <uapi/linux/aufs_type.h>
 --- a/include/uapi/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/uapi/linux/aufs_type.h	2012-12-16 14:11:13.362479850 +0000
++++ b/include/uapi/linux/aufs_type.h	2013-02-19 06:25:53.235644735 +0000
 @@ -0,0 +1,233 @@
 +/*
-+ * Copyright (C) 2005-2012 Junjiro R. Okajima
++ * Copyright (C) 2005-2013 Junjiro R. Okajima
 + *
 + * This program, aufs is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
@@ -28600,7 +28653,7 @@
 +
 +#include <linux/limits.h>
 +
-+#define AUFS_VERSION	"3.x-rcN-20121210"
++#define AUFS_VERSION	"3.x-rcN-20130204"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')

Modified: dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-base.patch
==============================================================================
--- dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-base.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-base.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -1,7 +1,7 @@
 aufs3.x-rcN base patch
 
 diff --git a/fs/file_table.c b/fs/file_table.c
-index a72bf9d..dac6792 100644
+index de9e965..e73287a 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -36,7 +36,7 @@ struct files_stat_struct files_stat = {
@@ -14,10 +14,10 @@
  /* SLAB cache for file structures */
  static struct kmem_cache *filp_cachep __read_mostly;
 diff --git a/fs/inode.c b/fs/inode.c
-index b03c719..ee497f9 100644
+index 14084b7..ece87ed 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
-@@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
+@@ -1503,7 +1503,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
   * This does the actual work of updating an inodes time or version.  Must have
   * had called mnt_want_write() before calling this.
   */
@@ -27,10 +27,10 @@
  	if (inode->i_op->update_time)
  		return inode->i_op->update_time(inode, time, flags);
 diff --git a/fs/splice.c b/fs/splice.c
-index 13e5b47..f185c6c 100644
+index 6909d89..020c7bc 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
  /*
   * Attempt to initiate a splice from pipe to file.
   */
@@ -41,7 +41,7 @@
  {
  	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
  				loff_t *, size_t, unsigned int);
-@@ -1121,9 +1121,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
  /*
   * Attempt to initiate a splice from a file to a pipe.
   */
@@ -55,10 +55,10 @@
  	ssize_t (*splice_read)(struct file *, loff_t *,
  			       struct pipe_inode_info *, size_t, unsigned int);
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index b33cfc9..963a61b 100644
+index 7617ee0..1a39c33 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2558,6 +2558,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+@@ -2551,6 +2551,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
  extern int inode_newsize_ok(const struct inode *, loff_t offset);
  extern void setattr_copy(struct inode *inode, const struct iattr *attr);
  

Modified: dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-kbuild.patch
==============================================================================
--- dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-kbuild.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-kbuild.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -1,22 +1,22 @@
 aufs3.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
-index f95ae3a..6d8a9a5 100644
+index 780725a..d460c05 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -220,6 +220,7 @@ source "fs/pstore/Kconfig"
- source "fs/sysv/Kconfig"
+@@ -211,6 +211,7 @@ source "fs/sysv/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/exofs/Kconfig"
+ source "fs/f2fs/Kconfig"
 +source "fs/aufs/Kconfig"
  
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index 1d7af79..06db6eb 100644
+index 9d53192..e70f08f 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -126,3 +126,4 @@ obj-$(CONFIG_GFS2_FS)           += gfs2/
+@@ -127,3 +127,4 @@ obj-$(CONFIG_F2FS_FS)		+= f2fs/
  obj-y				+= exofs/ # Multiple modules
  obj-$(CONFIG_CEPH_FS)		+= ceph/
  obj-$(CONFIG_PSTORE)		+= pstore/

Modified: dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-standalone.patch
==============================================================================
--- dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-standalone.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/features/all/aufs3/aufs3-standalone.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -1,7 +1,7 @@
 aufs3.x-rcN standalone patch
 
 diff --git a/fs/file_table.c b/fs/file_table.c
-index dac6792..e3f2c15 100644
+index e73287a..b33aebe 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
@@ -22,7 +22,7 @@
  
  /*
 diff --git a/fs/inode.c b/fs/inode.c
-index ee497f9..5e7eee7 100644
+index ece87ed..38f7bc8 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
@@ -33,7 +33,7 @@
  
  /*
   * Empty aops. Can be used for the cases where the user does not
-@@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
+@@ -1519,6 +1520,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
  	mark_inode_dirty_sync(inode);
  	return 0;
  }
@@ -42,10 +42,10 @@
  /**
   *	touch_atime	-	update the access time
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 2496062..3e66a90 100644
+index 55605c5..aed7607 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
+@@ -52,6 +52,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
   * tree or hash is modified or when a vfsmount structure is modified.
   */
  DEFINE_BRLOCK(vfsmount_lock);
@@ -53,7 +53,7 @@
  
  static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
  {
-@@ -1401,6 +1402,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -1424,6 +1425,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
@@ -62,7 +62,7 @@
  static void cleanup_group_ids(struct mount *mnt, struct mount *end)
  {
 diff --git a/fs/notify/group.c b/fs/notify/group.c
-index 63fc294..6f4adca 100644
+index bd2625b..2ff2a0f 100644
 --- a/fs/notify/group.c
 +++ b/fs/notify/group.c
 @@ -22,6 +22,7 @@
@@ -73,48 +73,59 @@
  
  #include <linux/fsnotify_backend.h>
  #include "fsnotify.h"
-@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+@@ -65,6 +66,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
+ {
+ 	atomic_inc(&group->refcnt);
+ }
++EXPORT_SYMBOL_GPL(fsnotify_get_group);
+ 
+ /*
+  * Drop a reference to a group.  Free it if it's through.
+@@ -74,6 +76,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
  	if (atomic_dec_and_test(&group->refcnt))
- 		fsnotify_destroy_group(group);
+ 		fsnotify_final_destroy_group(group);
  }
 +EXPORT_SYMBOL_GPL(fsnotify_put_group);
  
  /*
   * Create a new fsnotify_group and hold a reference for the group returned.
-@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+@@ -102,6 +105,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
  
  	return group;
  }
 +EXPORT_SYMBOL_GPL(fsnotify_alloc_group);
+ 
+ int fsnotify_fasync(int fd, struct file *file, int on)
+ {
 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
-index f104d56..54f36db 100644
+index fc6b49b..a6bb87d 100644
 --- a/fs/notify/mark.c
 +++ b/fs/notify/mark.c
-@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
- 	if (atomic_dec_and_test(&mark->refcnt))
+@@ -115,6 +115,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
  		mark->free_mark(mark);
+ 	}
  }
 +EXPORT_SYMBOL_GPL(fsnotify_put_mark);
  
  /*
   * Any time a mark is getting freed we end up here.
-@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
- 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
- 		fsnotify_final_destroy_group(group);
+@@ -197,6 +198,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark,
+ 	fsnotify_destroy_mark_locked(mark, group);
+ 	mutex_unlock(&group->mark_mutex);
  }
 +EXPORT_SYMBOL_GPL(fsnotify_destroy_mark);
  
  void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
  {
-@@ -278,6 +280,7 @@ err:
+@@ -281,6 +283,7 @@ err:
  
  	return ret;
  }
 +EXPORT_SYMBOL_GPL(fsnotify_add_mark);
  
- /*
-  * clear any marks in a group in which mark->flags & flags is true
-@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
+ 		      struct inode *inode, struct vfsmount *mnt, int allow_dups)
+@@ -342,6 +345,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
  	atomic_set(&mark->refcnt, 1);
  	mark->free_mark = free_mark;
  }
@@ -123,7 +134,7 @@
  static int fsnotify_mark_destroy(void *ignored)
  {
 diff --git a/fs/open.c b/fs/open.c
-index 59071f5..7e4c856 100644
+index 9b33c0c..e3365035 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
@@ -132,13 +143,13 @@
  }
 +EXPORT_SYMBOL_GPL(do_truncate);
  
- static long do_sys_truncate(const char __user *pathname, loff_t length)
+ long vfs_truncate(struct path *path, loff_t length)
  {
 diff --git a/fs/splice.c b/fs/splice.c
-index f185c6c..f3d89da 100644
+index 020c7bc..a622ade 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
  
  	return splice_write(pipe, out, ppos, len, flags);
  }
@@ -146,7 +157,7 @@
  
  /*
   * Attempt to initiate a splice from a file to a pipe.
-@@ -1143,6 +1144,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
  
  	return splice_read(in, ppos, pipe, len, flags);
  }
@@ -155,10 +166,10 @@
  /**
   * splice_direct_to_actor - splices data directly between two non-pipes
 diff --git a/security/commoncap.c b/security/commoncap.c
-index 6dbae46..9f4f29a 100644
+index 7ee08c7..176edf1 100644
 --- a/security/commoncap.c
 +++ b/security/commoncap.c
-@@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
+@@ -988,9 +988,11 @@ int cap_mmap_addr(unsigned long addr)
  	}
  	return ret;
  }
@@ -171,7 +182,7 @@
  }
 +EXPORT_SYMBOL_GPL(cap_mmap_file);
 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index b08d20c..a90420b 100644
+index d794abc..a20f167 100644
 --- a/security/device_cgroup.c
 +++ b/security/device_cgroup.c
 @@ -7,6 +7,7 @@
@@ -182,7 +193,7 @@
  #include <linux/list.h>
  #include <linux/uaccess.h>
  #include <linux/seq_file.h>
-@@ -617,6 +618,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
+@@ -631,6 +632,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
  	return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
  			access);
  }
@@ -191,7 +202,7 @@
  int devcgroup_inode_mknod(int mode, dev_t dev)
  {
 diff --git a/security/security.c b/security/security.c
-index 8dcd4ae..6efe561 100644
+index 7b88c6a..5d00a30 100644
 --- a/security/security.c
 +++ b/security/security.c
 @@ -396,6 +396,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)

Modified: dists/trunk/linux/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch
==============================================================================
--- dists/trunk/linux/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch	Tue Feb 19 06:36:33 2013	(r19826)
@@ -19,7 +19,7 @@
 
 --- a/Documentation/kernel-parameters.txt
 +++ b/Documentation/kernel-parameters.txt
-@@ -455,8 +455,8 @@ bytes respectively. Such letter suffixes
+@@ -449,8 +449,8 @@ bytes respectively. Such letter suffixes
  	ccw_timeout_log [S390]
  			See Documentation/s390/CommonIO for details.
  
@@ -32,7 +32,7 @@
  	checkreqprot	[SELINUX] Set initial checkreqprot flag value.
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -784,6 +784,14 @@ config MEMCG
+@@ -849,6 +849,14 @@ config MEMCG
  	  This config option also selects MM_OWNER config option, which
  	  could in turn add some fork/exit overhead.
  
@@ -49,7 +49,7 @@
  	depends on MEMCG && SWAP
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -5132,7 +5132,7 @@ static void cgroup_release_agent(struct
+@@ -5149,7 +5149,7 @@ static void cgroup_release_agent(struct
  	mutex_unlock(&cgroup_mutex);
  }
  
@@ -58,7 +58,7 @@
  {
  	int i;
  	char *token;
-@@ -5152,17 +5152,29 @@ static int __init cgroup_disable(char *s
+@@ -5169,17 +5169,29 @@ static int __init cgroup_disable(char *s
  				continue;
  
  			if (!strcmp(token, ss->name)) {
@@ -93,7 +93,7 @@
   */
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -5630,6 +5630,9 @@ static void mem_cgroup_move_task(struct
+@@ -6745,6 +6745,9 @@ static void mem_cgroup_move_task(struct
  
  struct cgroup_subsys mem_cgroup_subsys = {
  	.name = "memory",
@@ -101,5 +101,5 @@
 +	.disabled = 1,
 +#endif
  	.subsys_id = mem_cgroup_subsys_id,
- 	.create = mem_cgroup_create,
- 	.pre_destroy = mem_cgroup_pre_destroy,
+ 	.css_alloc = mem_cgroup_css_alloc,
+ 	.css_offline = mem_cgroup_css_offline,

Modified: dists/trunk/linux/debian/patches/series
==============================================================================
--- dists/trunk/linux/debian/patches/series	Mon Feb 18 23:26:08 2013	(r19825)
+++ dists/trunk/linux/debian/patches/series	Tue Feb 19 06:36:33 2013	(r19826)
@@ -47,9 +47,7 @@
 debian/iwlwifi-do-not-request-unreleased-firmware.patch
 debian/cirrus-disable-modeset-by-default.patch
 debian/fs-enable-link-security-restrictions-by-default.patch
-bugfix/arm/lis3l02dq-fix-building-without-irq-to-gpio.patch
 bugfix/arm/omap-musb-choice.patch
-bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch
 
 features/all/xen/microcode.patch
 debian/radeon-no-modeset-without-firmware.patch
@@ -59,13 +57,7 @@
 bugfix/all/firmware_class-log-every-success-and-failure.patch
 bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
 
-bugfix/all/exec-use-ELOOP-for-max-recursion-depth.patch
 bugfix/all/megaraid_sas-fix-memory-leak-if-SGL-has-zero-length-entries.patch
-bugfix/all/pps-ptp-Remove-dependencies-on-EXPERIMENTAL.patch
-bugfix/all/ptp-Make-PTP_1588_CLOCK-select-rather-than-depend-on.patch
-bugfix/all/ptp-Enable-clock-drivers-along-with-associated-net-P.patch
-bugfix/all/sfc-Select-PTP_1588_CLOCK.patch
-bugfix/all/pch_gbe-ptp_pch-Fix-the-dependency-direction-between.patch
 debian/udl-disable-autoload.patch
 debian/ast-disable-autoload.patch
 debian/mgag200-disable-autoload.patch



More information about the Kernel-svn-changes mailing list