[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