Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1555313 > unrolled thread
| Started by | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| First post | 2017-01-10 14:50 +0100 |
| Last post | 2017-01-11 12:10 +0100 |
| Articles | 20 on this page of 173 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 4.9 000/206] 4.9.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 054/206] USB: serial: io_edgeport: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 090/206] usb: dwc3: gadget: always unmap EP0 requests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 135/206] PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 008/206] fscrypt: fix renaming and linking special files Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 013/206] pinctrl/amd: Set the level based on ACPI tables Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 030/206] USB: gadgetfs: fix checks of wTotalLength in config descriptors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 009/206] parisc: Add line-break when printing segfault info Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 032/206] USB: dummy-hcd: fix bug in stop_activity (handle ep0) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 058/206] USB: serial: mos7840: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 004/206] staging: octeon: Call SET_NETDEV_DEV() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 130/206] sbp-target: Fix second argument of percpu_ida_alloc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 010/206] parisc: Mark cr16 clocksource unstable on SMP systems Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 050/206] USB: serial: io_ti: fix I/O after disconnect Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 062/206] USB: serial: mos7720: fix parallel probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 088/206] usb: dwc3: ep0: add dwc3_ep0_prepare_one_trb() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 105/206] hwmon: (scpi) Fix module autoload Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 085/206] mei: move write cb to completion on credentials failures Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 061/206] USB: serial: mos7720: fix parport use-after-free on probe errors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 064/206] xhci: Use delayed_work instead of timer for command timeout Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 097/206] ath10k: use the right length of "background" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 110/206] hwmon: (lm90) fix temp1_max_alarm attribute Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 041/206] usb: xhci: hold lock over xhci_abort_cmd_ring() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 051/206] USB: serial: iuu_phoenix: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 046/206] USB: serial: keyspan_pda: verify endpoints at probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 095/206] ath10k: fix failure to send NULL func frame for 10.4 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 021/206] KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 055/206] USB: serial: oti6858: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 035/206] usb: xhci: fix possible wild pointer Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 113/206] clk: clk-wm831x: fix a logic error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 107/206] hwmon: (ds620) Fix overflows seen when writing temperature limits Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 014/206] mac80211: initialize fast-xmit info later Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 132/206] ima: fix memory leak in ima_release_policy Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 042/206] usb: return error code when platform_get_irq fails Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 100/206] clk: renesas: cpg-mssr: Fix inverted debug check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 14:50 +0100
[PATCH 4.9 191/206] xfs: handle cow fork in xfs_bmap_trace_exlist Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 172/206] tpm_tis: Check return values from get_burstcount. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 154/206] md: fix refcount problem on mddev when stopping array. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 205/206] clocksource/dummy_timer: Move hotplug callback after the real timers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 151/206] crypto: arm64/aes-xts-ce: fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 201/206] xfs: fix double-cleanup when CUI recovery fails Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 190/206] xfs: pass state not whichfork to trace_xfs_extlist Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 192/206] xfs: forbid AG btrees with level == 0 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 178/206] xfs: check minimum block size for CRC filesystems Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 199/206] xfs: ignore leaf attr ichdr.count in verifier during log replay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 177/206] xfs: provide helper for counting extents from if_bytes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 169/206] drm/i915: disable PSR by default on HSW/BDW Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 187/206] xfs: use new extent lookup helpers xfs_file_iomap_begin_delay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 148/206] crypto: arm64/aes-ccm-ce: fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 157/206] [media] staging: media: davinci_vpfe: unlock on error in vpfe_reqbufs() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 161/206] PCI: Convert broken INTx masking quirks from HEADER to FINAL Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 202/206] xfs: use the actual AG length when reserving blocks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 181/206] xfs: factor rmap btree size into the indlen calculations Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 174/206] xfs: check return value of _trans_reserve_quota_nblks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 118/206] clk: renesas: mstp: Support 8-bit registers for r7s72100 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 164/206] PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 162/206] PCI: Convert Mellanox broken INTx quirks to be for listed devices only Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 163/206] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 141/206] mm: khugepaged: close use-after-free race during shmem collapsing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 193/206] xfs: check for bogus values in btree block headers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 158/206] PCI: rockchip: Fix negotiated lanes calculation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 185/206] xfs: use new extent lookup helpers in __xfs_reflink_reserve_cow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 183/206] xfs: remove prev argument to xfs_bmapi_reserve_delalloc Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 197/206] xfs: dont allow di_size with high bit set Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 165/206] powerpc/pci/rpadlpar: Fix device reference leaks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 139/206] mm/hugetlb.c: use the right pte val for compare in hugetlb_cow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 206/206] tick/broadcast: Prevent NULL pointer dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 194/206] xfs: complain if we dont get nextents bmap records Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 120/206] iommu/amd: Fix the left value check of cmd buffer Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 173/206] xfs: dont call xfs_sb_quota_from_disk twice Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 195/206] xfs: dont crash if reading a directory results in an unexpected hole Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 186/206] xfs: clean up cow fork reservation and tag inodes correctly Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 146/206] crypto: arm64/ghash-ce - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 152/206] crypto: arm64/aes-ce - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 196/206] xfs: error out if trying to add attrs and anextents > 0 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 160/206] PCI: Add Mellanox device IDs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 170/206] drm/i915/gen9: unconditionally apply the memory bandwidth WA Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 200/206] xfs: use GPF_NOFS when allocating btree cursors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 159/206] PCI: rockchip: Correct the use of FTS mask Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 149/206] crypto: arm64/aes-neon - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 188/206] xfs: pass post-eof speculative prealloc blocks to bmapi Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 198/206] xfs: dont cap maximum dedupe request length Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 203/206] xfs: fix crash and data corruption due to removal of busy COW extents Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 204/206] xfs: fix max_retries _show and _store functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:00 +0100
[PATCH 4.9 112/206] clk: qcom: ipq806x: Fix board clk rates Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 179/206] xfs: fix unbalanced inode reclaim flush locking Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 167/206] s390/pci: fix dma address calculation in map_sg Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 189/206] xfs: Move AGI buffer type setting to xfs_read_agi Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 166/206] s390/topology: always use s390 specific sched_domain_topology_level Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 171/206] drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 176/206] xfs: dont BUG() on mixed direct and mapped I/O Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 119/206] iommu/amd: Missing error code in amd_iommu_init_device() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 155/206] f2fs: remove percpu_count due to performance regression Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 182/206] xfs: always succeed when deduping zero bytes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 121/206] iommu/vt-d: Fix pasid table size encoding Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 184/206] xfs: track preallocation separately in xfs_bmapi_reserve_delalloc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 175/206] xfs: dont skip cow forks w/ delalloc blocks in cowblocks scan Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 180/206] xfs: new inode extent list lookup helpers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:10 +0100
[PATCH 4.9 150/206] crypto: arm64/sha1-ce - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 153/206] md: MD_RECOVERY_NEEDED is set for mddev->recovery Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 143/206] mm, compaction: fix NR_ISOLATED_* stats for pfn based migration Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 140/206] docs-rst: fix LaTeX \DURole renewcommand with Sphinx 1.3+ Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 144/206] s390/crypto: unlock on error in prng_tdes_read() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 136/206] genirq/affinity: Fix node generation from cpumask Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 147/206] crypto: arm/aes-ce - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 134/206] irqchip/bcm7038-l1: Implement irq_cpu_offline() callback Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 115/206] clk: sunxi-ng: sun8i-a23: Set CLK_SET_RATE_PARENT for audio module clocks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 145/206] crypto: arm64/sha2-ce - fix for big endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 116/206] clk: sunxi-ng: sun8i-h3: Set CLK_SET_RATE_PARENT for audio module clocks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 142/206] mm: khugepaged: fix radix tree node leak in shmem collapse error path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 138/206] rpmsg: qcom_smd: Correct return value for O_NONBLOCK Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:30 +0100
[PATCH 4.9 108/206] hwmon: (nct7802) Fix overflows seen when writing into limit attributes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 077/206] ARM: dts: r8a7794: Correct hsusb parent clock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 133/206] PCI/MSI: Check for NULL affinity mask in pci_irq_get_affinity() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 103/206] x86/cpu: Probe CPUID leaf 6 even when cpuid_level == 6 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 109/206] hwmon: (g762) Fix overflows and crash seen when writing limit attributes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 096/206] mfd: tps65217: Fix page fault on unloading modules Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 098/206] cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 126/206] ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 114/206] clk: ti: dra7: fix "failed to lookup clock node gmac_gmii_ref_clk_div" boot message Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 128/206] scsi: mvsas: fix command_active typo Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 111/206] Input: synaptics-rmi4 - unlock on error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 079/206] arm64: dts: hip06: Correct hardware pin number of usb node Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 075/206] usb: gadget: Fix second argument of percpu_ida_alloc() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 074/206] USB: serial: kl5kusb105: abort on open exception path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 129/206] target/iscsi: Fix double free in lio_target_tiqn_addtpg() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 073/206] ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 125/206] ASoC: Intel: Skylake: Fix a shift wrapping bug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 106/206] hwmon: (amc6821) sign extension temperature Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 122/206] iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:40 +0100
[PATCH 4.9 033/206] usb: gadget: composite: Test get_alt() presence instead of set_alt() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 026/206] usb: storage: unusual_uas: Add JMicron JMS56x to unusual device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 052/206] USB: serial: garmin_gps: fix memory leak on failed URB submit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 056/206] USB: serial: cyberjack: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 034/206] usb: dwc3: core: avoid Overflow events Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 066/206] usb: dwc3: pci: add Intel Gemini Lake PCI ID Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 063/206] usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 065/206] xhci: Fix race related to abort operation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 053/206] USB: serial: ti_usb_3410_5052: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 029/206] USB: gadgetfs: fix use-after-free bug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 060/206] USB: serial: mos7720: fix use-after-free on probe errors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 094/206] nl80211: Use different attrs for BSSID and random MAC addr in scan req Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 057/206] USB: serial: kobil_sct: fix NULL-deref in write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 093/206] mac80211: fix tid_agg_rx NULL dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 068/206] usb: dwc3: gadget: Fix full speed mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 084/206] mei: bus: fix mei_cldev_enable KDoc Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 082/206] USB: serial: io_ti: bind to interface after fw download Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 048/206] USB: serial: io_ti: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 031/206] USB: fix problems with duplicate endpoint addresses Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 081/206] [media] dibusb: fix possible memory leak in dibusb_rc_query() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 049/206] USB: serial: io_ti: fix another NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 15:50 +0100
[PATCH 4.9 038/206] usb: xhci: fix return value of xhci_setup_device() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 007/206] ALSA: usb-audio: Fix irq/process data synchronization Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 012/206] ARM: davinci: da850: dont add emac clock to lookup table twice Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 036/206] usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Apollo Lake Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 044/206] USB: serial: quatech2: fix sleep-while-atomic in close Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 005/206] ALSA: hda - Fix up GPIO for ASUS ROG Ranger Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 001/206] iio: common: st_sensors: fix channel data parsing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 040/206] xhci: Handle command completion and timeout race Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 027/206] usb: gadgetfs: restrict upper bound on device configuration size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 011/206] HID: sensor-hub: Move the memset to sensor_hub_get_feature() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 006/206] ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 039/206] usb: host: xhci: Fix possible wild pointer when handling abort command Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 025/206] usb: musb: dsps: implement clear_ep_rxintr() callback Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 047/206] USB: serial: spcp8x5: fix NULL-deref at open Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 043/206] USB: serial: omninet: fix NULL-derefs at open and disconnect Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 002/206] iio: max44000: correct value in illuminance_integration_time_available Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
[PATCH 4.9 028/206] USB: gadgetfs: fix unbounded memory allocation bug Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 16:00 +0100
Re: [PATCH 4.9 000/206] 4.9.3-stable review Shuah Khan <shuah.kh@samsung.com> - 2017-01-10 18:40 +0100
Re: [PATCH 4.9 000/206] 4.9.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-10 18:50 +0100
Re: [PATCH 4.9 000/206] 4.9.3-stable review Guenter Roeck <linux@roeck-us.net> - 2017-01-10 23:30 +0100
Re: [PATCH 4.9 000/206] 4.9.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-01-11 08:00 +0100
Re: [PATCH 4.9 000/206] 4.9.3-stable review Guenter Roeck <linux@roeck-us.net> - 2017-01-11 12:10 +0100
Page 5 of 9 — ← Prev page 1 2 3 4 [5] 6 7 8 9 Next page →
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:00 +0100 |
| Subject | [PATCH 4.9 188/206] xfs: pass post-eof speculative prealloc blocks to bmapi |
| Message-ID | <sY580-21p-115@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Foster <bfoster@redhat.com>
commit f782088c9e5d08e9494c63e68b4e85716df3e5f8 upstream.
xfs_file_iomap_begin_delay() implements post-eof speculative
preallocation by extending the block count of the requested delayed
allocation. Now that xfs_bmapi_reserve_delalloc() has been updated to
handle prealloc blocks separately and tag the inode, update
xfs_file_iomap_begin_delay() to use the new parameter and rely on the
former to tag the inode.
Note that this patch does not change behavior.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_iomap.c | 33 +++++++++++++--------------------
1 file changed, 13 insertions(+), 20 deletions(-)
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -536,10 +536,11 @@ xfs_file_iomap_begin_delay(
xfs_fileoff_t offset_fsb = XFS_B_TO_FSBT(mp, offset);
xfs_fileoff_t maxbytes_fsb =
XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
- xfs_fileoff_t end_fsb, orig_end_fsb;
+ xfs_fileoff_t end_fsb;
int error = 0, eof = 0;
struct xfs_bmbt_irec got;
xfs_extnum_t idx;
+ xfs_fsblock_t prealloc_blocks = 0;
ASSERT(!XFS_IS_REALTIME_INODE(ip));
ASSERT(!xfs_get_extsz_hint(ip));
@@ -594,33 +595,32 @@ xfs_file_iomap_begin_delay(
* the lower level functions are updated.
*/
count = min_t(loff_t, count, 1024 * PAGE_SIZE);
- end_fsb = orig_end_fsb =
- min(XFS_B_TO_FSB(mp, offset + count), maxbytes_fsb);
+ end_fsb = min(XFS_B_TO_FSB(mp, offset + count), maxbytes_fsb);
if (eof) {
- xfs_fsblock_t prealloc_blocks;
-
prealloc_blocks = xfs_iomap_prealloc_size(ip, offset, count, idx);
if (prealloc_blocks) {
xfs_extlen_t align;
xfs_off_t end_offset;
+ xfs_fileoff_t p_end_fsb;
end_offset = XFS_WRITEIO_ALIGN(mp, offset + count - 1);
- end_fsb = XFS_B_TO_FSBT(mp, end_offset) +
- prealloc_blocks;
+ p_end_fsb = XFS_B_TO_FSBT(mp, end_offset) +
+ prealloc_blocks;
align = xfs_eof_alignment(ip, 0);
if (align)
- end_fsb = roundup_64(end_fsb, align);
+ p_end_fsb = roundup_64(p_end_fsb, align);
- end_fsb = min(end_fsb, maxbytes_fsb);
- ASSERT(end_fsb > offset_fsb);
+ p_end_fsb = min(p_end_fsb, maxbytes_fsb);
+ ASSERT(p_end_fsb > offset_fsb);
+ prealloc_blocks = p_end_fsb - end_fsb;
}
}
retry:
error = xfs_bmapi_reserve_delalloc(ip, XFS_DATA_FORK, offset_fsb,
- end_fsb - offset_fsb, 0, &got, &idx, eof);
+ end_fsb - offset_fsb, prealloc_blocks, &got, &idx, eof);
switch (error) {
case 0:
break;
@@ -628,8 +628,8 @@ retry:
case -EDQUOT:
/* retry without any preallocation */
trace_xfs_delalloc_enospc(ip, offset, count);
- if (end_fsb != orig_end_fsb) {
- end_fsb = orig_end_fsb;
+ if (prealloc_blocks) {
+ prealloc_blocks = 0;
goto retry;
}
/*FALLTHRU*/
@@ -637,13 +637,6 @@ retry:
goto out_unlock;
}
- /*
- * Tag the inode as speculatively preallocated so we can reclaim this
- * space on demand, if necessary.
- */
- if (end_fsb != orig_end_fsb)
- xfs_inode_set_eofblocks_tag(ip);
-
trace_xfs_iomap_alloc(ip, offset, count, 0, &got);
done:
if (isnullstartblock(got.br_startblock))
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:00 +0100 |
| Subject | [PATCH 4.9 198/206] xfs: dont cap maximum dedupe request length |
| Message-ID | <sY580-21p-111@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Darrick J. Wong" <darrick.wong@oracle.com>
commit 1bb33a98702d8360947f18a44349df75ba555d5d upstream.
After various discussions on linux-fsdevel, it has been decided that it
is not necessary to cap the length of a dedupe request, and that
correctly-written userspace client programs will be able to absorb the
change. Therefore, remove the length clamping behavior.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_file.c | 9 ---------
1 file changed, 9 deletions(-)
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -939,7 +939,6 @@ xfs_file_clone_range(
len, false);
}
-#define XFS_MAX_DEDUPE_LEN (16 * 1024 * 1024)
STATIC ssize_t
xfs_file_dedupe_range(
struct file *src_file,
@@ -950,14 +949,6 @@ xfs_file_dedupe_range(
{
int error;
- /*
- * Limit the total length we will dedupe for each operation.
- * This is intended to bound the total time spent in this
- * ioctl to something sane.
- */
- if (len > XFS_MAX_DEDUPE_LEN)
- len = XFS_MAX_DEDUPE_LEN;
-
error = xfs_reflink_remap_range(src_file, loff, dst_file, dst_loff,
len, true);
if (error)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:00 +0100 |
| Subject | [PATCH 4.9 203/206] xfs: fix crash and data corruption due to removal of busy COW extents |
| Message-ID | <sY580-21p-99@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know. ------------------ commit a1b7a4dea6166cf46be895bce4aac67ea5160fe8 upstream. There is a race window between write_cache_pages calling clear_page_dirty_for_io and XFS calling set_page_writeback, in which the mapping for an inode is tagged neither as dirty, nor as writeback. If the COW shrinker hits in exactly that window we'll remove the delayed COW extents and writepages trying to write it back, which in release kernels will manifest as corruption of the bmap btree, and in debug kernels will trip the ASSERT about now calling xfs_bmapi_write with the COWFORK flag for holes. A complex customer load manages to hit this window fairly reliably, probably by always having COW writeback in flight while the cow shrinker runs. This patch adds another check for having the I_DIRTY_PAGES flag set, which is still set during this race window. While this fixes the problem I'm still not overly happy about the way the COW shrinker works as it still seems a bit fragile. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/xfs/xfs_icache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/fs/xfs/xfs_icache.c +++ b/fs/xfs/xfs_icache.c @@ -1599,7 +1599,8 @@ xfs_inode_free_cowblocks( * If the mapping is dirty or under writeback we cannot touch the * CoW fork. Leave it alone if we're in the midst of a directio. */ - if (mapping_tagged(VFS_I(ip)->i_mapping, PAGECACHE_TAG_DIRTY) || + if ((VFS_I(ip)->i_state & I_DIRTY_PAGES) || + mapping_tagged(VFS_I(ip)->i_mapping, PAGECACHE_TAG_DIRTY) || mapping_tagged(VFS_I(ip)->i_mapping, PAGECACHE_TAG_WRITEBACK) || atomic_read(&VFS_I(ip)->i_dio_count)) return 0;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:00 +0100 |
| Subject | [PATCH 4.9 204/206] xfs: fix max_retries _show and _store functions |
| Message-ID | <sY580-21p-117@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Carlos Maiolino <cmaiolino@redhat.com> commit ff97f2399edac1e0fb3fa7851d5fbcbdf04717cf upstream. max_retries _show and _store functions should test against cfg->max_retries, not cfg->retry_timeout Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/xfs/xfs_sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/xfs/xfs_sysfs.c +++ b/fs/xfs/xfs_sysfs.c @@ -396,7 +396,7 @@ max_retries_show( int retries; struct xfs_error_cfg *cfg = to_error_cfg(kobject); - if (cfg->retry_timeout == XFS_ERR_RETRY_FOREVER) + if (cfg->max_retries == XFS_ERR_RETRY_FOREVER) retries = -1; else retries = cfg->max_retries; @@ -422,7 +422,7 @@ max_retries_store( return -EINVAL; if (val == -1) - cfg->retry_timeout = XFS_ERR_RETRY_FOREVER; + cfg->max_retries = XFS_ERR_RETRY_FOREVER; else cfg->max_retries = val; return count;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 112/206] clk: qcom: ipq806x: Fix board clk rates |
| Message-ID | <sY5hD-2jO-1@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Stephen Boyd <sboyd@codeaurora.org>
commit cbf2e548ca8ad4bb274d014e9a70bd841d29948e upstream.
The clocks on these boards run at 25 MHz, not 19.2 and 27 like
other platforms. Unfortunately I copy/pasted from other similar
SoCs but forgot this one is different. Fix it.
Fixes: a085f877a882 ("clk: qcom: Move cxo/pxo/xo into dt files")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/clk/qcom/gcc-ipq806x.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/clk/qcom/gcc-ipq806x.c
+++ b/drivers/clk/qcom/gcc-ipq806x.c
@@ -2990,11 +2990,11 @@ static int gcc_ipq806x_probe(struct plat
struct regmap *regmap;
int ret;
- ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
+ ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 25000000);
if (ret)
return ret;
- ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000);
+ ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 25000000);
if (ret)
return ret;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 179/206] xfs: fix unbalanced inode reclaim flush locking |
| Message-ID | <sY5hD-2jO-3@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Foster <bfoster@redhat.com>
commit 98efe8af1c9ffac47e842b7a75ded903e2f028da upstream.
Filesystem shutdown testing on an older distro kernel has uncovered an
imbalanced locking pattern for the inode flush lock in
xfs_reclaim_inode(). Specifically, there is a double unlock sequence
between the call to xfs_iflush_abort() and xfs_reclaim_inode() at the
"reclaim:" label.
This actually does not cause obvious problems on current kernels due to
the current flush lock implementation. Older kernels use a counting
based flush lock mechanism, however, which effectively breaks the lock
indefinitely when an already unlocked flush lock is repeatedly unlocked.
Though this only currently occurs on filesystem shutdown, it has
reproduced the effect of elevating an fs shutdown to a system-wide crash
or hang.
As it turns out, the flush lock is not actually required for the reclaim
logic in xfs_reclaim_inode() because by that time we have already cycled
the flush lock once while holding ILOCK_EXCL. Therefore, remove the
additional flush lock/unlock cycle around the 'reclaim:' label and
update branches into this label to release the flush lock where
appropriate. Add an assert to xfs_ifunlock() to help prevent future
occurences of the same problem.
Reported-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_icache.c | 27 ++++++++++++++-------------
fs/xfs/xfs_inode.h | 11 ++++++-----
2 files changed, 20 insertions(+), 18 deletions(-)
--- a/fs/xfs/xfs_icache.c
+++ b/fs/xfs/xfs_icache.c
@@ -123,7 +123,6 @@ __xfs_inode_free(
{
/* asserts to verify all state is correct here */
ASSERT(atomic_read(&ip->i_pincount) == 0);
- ASSERT(!xfs_isiflocked(ip));
XFS_STATS_DEC(ip->i_mount, vn_active);
call_rcu(&VFS_I(ip)->i_rcu, xfs_inode_free_callback);
@@ -133,6 +132,8 @@ void
xfs_inode_free(
struct xfs_inode *ip)
{
+ ASSERT(!xfs_isiflocked(ip));
+
/*
* Because we use RCU freeing we need to ensure the inode always
* appears to be reclaimed with an invalid inode number when in the
@@ -981,6 +982,7 @@ restart:
if (XFS_FORCED_SHUTDOWN(ip->i_mount)) {
xfs_iunpin_wait(ip);
+ /* xfs_iflush_abort() drops the flush lock */
xfs_iflush_abort(ip, false);
goto reclaim;
}
@@ -989,10 +991,10 @@ restart:
goto out_ifunlock;
xfs_iunpin_wait(ip);
}
- if (xfs_iflags_test(ip, XFS_ISTALE))
- goto reclaim;
- if (xfs_inode_clean(ip))
+ if (xfs_iflags_test(ip, XFS_ISTALE) || xfs_inode_clean(ip)) {
+ xfs_ifunlock(ip);
goto reclaim;
+ }
/*
* Never flush out dirty data during non-blocking reclaim, as it would
@@ -1030,25 +1032,24 @@ restart:
xfs_buf_relse(bp);
}
- xfs_iflock(ip);
reclaim:
+ ASSERT(!xfs_isiflocked(ip));
+
/*
* Because we use RCU freeing we need to ensure the inode always appears
* to be reclaimed with an invalid inode number when in the free state.
- * We do this as early as possible under the ILOCK and flush lock so
- * that xfs_iflush_cluster() can be guaranteed to detect races with us
- * here. By doing this, we guarantee that once xfs_iflush_cluster has
- * locked both the XFS_ILOCK and the flush lock that it will see either
- * a valid, flushable inode that will serialise correctly against the
- * locks below, or it will see a clean (and invalid) inode that it can
- * skip.
+ * We do this as early as possible under the ILOCK so that
+ * xfs_iflush_cluster() can be guaranteed to detect races with us here.
+ * By doing this, we guarantee that once xfs_iflush_cluster has locked
+ * XFS_ILOCK that it will see either a valid, flushable inode that will
+ * serialise correctly, or it will see a clean (and invalid) inode that
+ * it can skip.
*/
spin_lock(&ip->i_flags_lock);
ip->i_flags = XFS_IRECLAIM;
ip->i_ino = 0;
spin_unlock(&ip->i_flags_lock);
- xfs_ifunlock(ip);
xfs_iunlock(ip, XFS_ILOCK_EXCL);
XFS_STATS_INC(ip->i_mount, xs_ig_reclaims);
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -246,6 +246,11 @@ static inline bool xfs_is_reflink_inode(
* Synchronize processes attempting to flush the in-core inode back to disk.
*/
+static inline int xfs_isiflocked(struct xfs_inode *ip)
+{
+ return xfs_iflags_test(ip, XFS_IFLOCK);
+}
+
extern void __xfs_iflock(struct xfs_inode *ip);
static inline int xfs_iflock_nowait(struct xfs_inode *ip)
@@ -261,16 +266,12 @@ static inline void xfs_iflock(struct xfs
static inline void xfs_ifunlock(struct xfs_inode *ip)
{
+ ASSERT(xfs_isiflocked(ip));
xfs_iflags_clear(ip, XFS_IFLOCK);
smp_mb();
wake_up_bit(&ip->i_flags, __XFS_IFLOCK_BIT);
}
-static inline int xfs_isiflocked(struct xfs_inode *ip)
-{
- return xfs_iflags_test(ip, XFS_IFLOCK);
-}
-
/*
* Flags for inode locking.
* Bit ranges: 1<<1 - 1<<16-1 -- iolock/ilock modes (bitfield)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 167/206] s390/pci: fix dma address calculation in map_sg |
| Message-ID | <sY5hD-2jO-15@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sebastian Ott <sebott@linux.vnet.ibm.com>
commit 6b7df3ce92ac82ec3f4a2953b6fed77da7b38aaa upstream.
__s390_dma_map_sg maps a dma-contiguous area. Although we only map
whole pages we have to take into account that the area doesn't start
or stop at a page boundary because we use the dma address to loop
over the individual sg entries. Failing to do that might lead to an
access of the wrong sg entry.
Fixes: ee877b81c6b9 ("s390/pci_dma: improve map_sg")
Reported-and-tested-by: Christoph Raisch <raisch@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/s390/pci/pci_dma.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
--- a/arch/s390/pci/pci_dma.c
+++ b/arch/s390/pci/pci_dma.c
@@ -419,6 +419,7 @@ static int __s390_dma_map_sg(struct devi
size_t size, dma_addr_t *handle,
enum dma_data_direction dir)
{
+ unsigned long nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev));
dma_addr_t dma_addr_base, dma_addr;
int flags = ZPCI_PTE_VALID;
@@ -426,8 +427,7 @@ static int __s390_dma_map_sg(struct devi
unsigned long pa = 0;
int ret;
- size = PAGE_ALIGN(size);
- dma_addr_base = dma_alloc_address(dev, size >> PAGE_SHIFT);
+ dma_addr_base = dma_alloc_address(dev, nr_pages);
if (dma_addr_base == DMA_ERROR_CODE)
return -ENOMEM;
@@ -436,26 +436,27 @@ static int __s390_dma_map_sg(struct devi
flags |= ZPCI_TABLE_PROTECTED;
for (s = sg; dma_addr < dma_addr_base + size; s = sg_next(s)) {
- pa = page_to_phys(sg_page(s)) + s->offset;
- ret = __dma_update_trans(zdev, pa, dma_addr, s->length, flags);
+ pa = page_to_phys(sg_page(s));
+ ret = __dma_update_trans(zdev, pa, dma_addr,
+ s->offset + s->length, flags);
if (ret)
goto unmap;
- dma_addr += s->length;
+ dma_addr += s->offset + s->length;
}
ret = __dma_purge_tlb(zdev, dma_addr_base, size, flags);
if (ret)
goto unmap;
*handle = dma_addr_base;
- atomic64_add(size >> PAGE_SHIFT, &zdev->mapped_pages);
+ atomic64_add(nr_pages, &zdev->mapped_pages);
return ret;
unmap:
dma_update_trans(zdev, 0, dma_addr_base, dma_addr - dma_addr_base,
ZPCI_PTE_INVALID);
- dma_free_address(dev, dma_addr_base, size >> PAGE_SHIFT);
+ dma_free_address(dev, dma_addr_base, nr_pages);
zpci_err("map error:\n");
zpci_err_dma(ret, pa);
return ret;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 189/206] xfs: Move AGI buffer type setting to xfs_read_agi |
| Message-ID | <sY5hD-2jO-7@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eric Sandeen <sandeen@sandeen.net>
commit 200237d6746faaeaf7f4ff4abbf13f3917cee60a upstream.
We've missed properly setting the buffer type for
an AGI transaction in 3 spots now, so just move it
into xfs_read_agi() and set it if we are in a transaction
to avoid the problem in the future.
This is similar to how it is done in i.e. the dir3
and attr3 read functions.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/libxfs/xfs_ialloc.c | 4 ++--
fs/xfs/xfs_inode.c | 2 --
fs/xfs/xfs_log_recover.c | 1 -
3 files changed, 2 insertions(+), 5 deletions(-)
--- a/fs/xfs/libxfs/xfs_ialloc.c
+++ b/fs/xfs/libxfs/xfs_ialloc.c
@@ -2450,8 +2450,6 @@ xfs_ialloc_log_agi(
ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC));
#endif
- xfs_trans_buf_set_type(tp, bp, XFS_BLFT_AGI_BUF);
-
/*
* Compute byte offsets for the first and last fields in the first
* region and log the agi buffer. This only logs up through
@@ -2592,6 +2590,8 @@ xfs_read_agi(
XFS_FSS_TO_BB(mp, 1), 0, bpp, &xfs_agi_buf_ops);
if (error)
return error;
+ if (tp)
+ xfs_trans_buf_set_type(tp, *bpp, XFS_BLFT_AGI_BUF);
xfs_buf_set_ref(*bpp, XFS_AGI_REF);
return 0;
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2041,7 +2041,6 @@ xfs_iunlink(
agi->agi_unlinked[bucket_index] = cpu_to_be32(agino);
offset = offsetof(xfs_agi_t, agi_unlinked) +
(sizeof(xfs_agino_t) * bucket_index);
- xfs_trans_buf_set_type(tp, agibp, XFS_BLFT_AGI_BUF);
xfs_trans_log_buf(tp, agibp, offset,
(offset + sizeof(xfs_agino_t) - 1));
return 0;
@@ -2133,7 +2132,6 @@ xfs_iunlink_remove(
agi->agi_unlinked[bucket_index] = cpu_to_be32(next_agino);
offset = offsetof(xfs_agi_t, agi_unlinked) +
(sizeof(xfs_agino_t) * bucket_index);
- xfs_trans_buf_set_type(tp, agibp, XFS_BLFT_AGI_BUF);
xfs_trans_log_buf(tp, agibp, offset,
(offset + sizeof(xfs_agino_t) - 1));
} else {
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -4929,7 +4929,6 @@ xlog_recover_clear_agi_bucket(
agi->agi_unlinked[bucket] = cpu_to_be32(NULLAGINO);
offset = offsetof(xfs_agi_t, agi_unlinked) +
(sizeof(xfs_agino_t) * bucket);
- xfs_trans_buf_set_type(tp, agibp, XFS_BLFT_AGI_BUF);
xfs_trans_log_buf(tp, agibp, offset,
(offset + sizeof(xfs_agino_t) - 1));
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 166/206] s390/topology: always use s390 specific sched_domain_topology_level |
| Message-ID | <sY5hD-2jO-5@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Heiko Carstens <heiko.carstens@de.ibm.com>
commit ebb299a51059017ec253bd30781a83d1f6e11b24 upstream.
The s390 specific sched_domain_topology_level should always be used,
not only if the machine provides topology information. Luckily this
odd behaviour, that was by accident introduced with git commit
d05d15da18f5 ("s390/topology: delay initialization of topology cpu
masks") has currently no side effect.
Fixes: d05d15da18f5 ("s390/topology: delay initialization of topology cpumasks")
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/s390/kernel/topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -448,6 +448,7 @@ static int __init s390_topology_init(voi
struct sysinfo_15_1_x *info;
int i;
+ set_sched_topology(s390_topology);
if (!MACHINE_HAS_TOPOLOGY)
return 0;
tl_info = (struct sysinfo_15_1_x *)__get_free_page(GFP_KERNEL);
@@ -460,7 +461,6 @@ static int __init s390_topology_init(voi
alloc_masks(info, &socket_info, 1);
alloc_masks(info, &book_info, 2);
alloc_masks(info, &drawer_info, 3);
- set_sched_topology(s390_topology);
return 0;
}
early_initcall(s390_topology_init);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 171/206] drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases |
| Message-ID | <sY5hD-2jO-9@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
commit 2ef32dee97fcf41987722a37eb6ff1a983915e99 upstream.
The previous spec version said "double Ytile planes minimum lines",
and I interpreted this as referring to what the spec calls "Y tile
minimum", but in fact it was referring to what the spec calls "Minimum
Scanlines for Y tile". I noticed that Mahesh Kumar had a different
interpretation, so I sent and email to the spec authors and got
clarification on the correct meaning. Also, BSpec was updated and
should be clear now.
Fixes: ee3d532fcb64 ("drm/i915/gen9: unconditionally apply the memory bandwidth WA")
Cc: stable@vger.kernel.org
Cc: Mahesh Kumar <mahesh1.kumar@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1478636531-6081-1-git-send-email-paulo.r.zanoni@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/i915/intel_pm.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3617,6 +3617,9 @@ static int skl_compute_plane_wm(const st
y_min_scanlines = 4;
}
+ if (apply_memory_bw_wa)
+ y_min_scanlines *= 2;
+
plane_bytes_per_line = width * cpp;
if (fb->modifier[0] == I915_FORMAT_MOD_Y_TILED ||
fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) {
@@ -3637,8 +3640,6 @@ static int skl_compute_plane_wm(const st
plane_blocks_per_line);
y_tile_minimum = plane_blocks_per_line * y_min_scanlines;
- if (apply_memory_bw_wa)
- y_tile_minimum *= 2;
if (fb->modifier[0] == I915_FORMAT_MOD_Y_TILED ||
fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) {
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 176/206] xfs: dont BUG() on mixed direct and mapped I/O |
| Message-ID | <sY5hD-2jO-27@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Foster <bfoster@redhat.com>
commit 04197b341f23b908193308b8d63d17ff23232598 upstream.
We've had reports of generic/095 causing XFS to BUG() in
__xfs_get_blocks() due to the existence of delalloc blocks on a
direct I/O read. generic/095 issues a mix of various types of I/O,
including direct and memory mapped I/O to a single file. This is
clearly not supported behavior and is known to lead to such
problems. E.g., the lack of exclusion between the direct I/O and
write fault paths means that a write fault can allocate delalloc
blocks in a region of a file that was previously a hole after the
direct read has attempted to flush/inval the file range, but before
it actually reads the block mapping. In turn, the direct read
discovers a delalloc extent and cannot proceed.
While the appropriate solution here is to not mix direct and memory
mapped I/O to the same regions of the same file, the current
BUG_ON() behavior is probably overkill as it can crash the entire
system. Instead, localize the failure to the I/O in question by
returning an error for a direct I/O that cannot be handled safely
due to delalloc blocks. Be careful to allow the case of a direct
write to post-eof delalloc blocks. This can occur due to speculative
preallocation and is safe as post-eof blocks are not accompanied by
dirty pages in pagecache (conversely, preallocation within eof must
have been zeroed, and thus dirtied, before the inode size could have
been increased beyond said blocks).
Finally, provide an additional warning if a direct I/O write occurs
while the file is memory mapped. This may not catch all problematic
scenarios, but provides a hint that some known-to-be-problematic I/O
methods are in use.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_aops.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -1361,6 +1361,26 @@ __xfs_get_blocks(
if (error)
goto out_unlock;
+ /*
+ * The only time we can ever safely find delalloc blocks on direct I/O
+ * is a dio write to post-eof speculative preallocation. All other
+ * scenarios are indicative of a problem or misuse (such as mixing
+ * direct and mapped I/O).
+ *
+ * The file may be unmapped by the time we get here so we cannot
+ * reliably fail the I/O based on mapping. Instead, fail the I/O if this
+ * is a read or a write within eof. Otherwise, carry on but warn as a
+ * precuation if the file happens to be mapped.
+ */
+ if (direct && imap.br_startblock == DELAYSTARTBLOCK) {
+ if (!create || offset < i_size_read(VFS_I(ip))) {
+ WARN_ON_ONCE(1);
+ error = -EIO;
+ goto out_unlock;
+ }
+ WARN_ON_ONCE(mapping_mapped(VFS_I(ip)->i_mapping));
+ }
+
/* for DAX, we convert unwritten extents directly */
if (create &&
(!nimaps ||
@@ -1450,8 +1470,6 @@ __xfs_get_blocks(
(new || ISUNWRITTEN(&imap))))
set_buffer_new(bh_result);
- BUG_ON(direct && imap.br_startblock == DELAYSTARTBLOCK);
-
return 0;
out_unlock:
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 119/206] iommu/amd: Missing error code in amd_iommu_init_device() |
| Message-ID | <sY5hD-2jO-11@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Carpenter <dan.carpenter@oracle.com>
commit 24c790fbf5d8f54c8c82979db11edea8855b74bf upstream.
We should set "ret" to -EINVAL if iommu_group_get() fails.
Fixes: 55c99a4dc50f ("iommu/amd: Use iommu_attach_group()")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iommu/amd_iommu_v2.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -805,8 +805,10 @@ int amd_iommu_init_device(struct pci_dev
goto out_free_domain;
group = iommu_group_get(&pdev->dev);
- if (!group)
+ if (!group) {
+ ret = -EINVAL;
goto out_free_domain;
+ }
ret = iommu_attach_group(dev_state->domain, group);
if (ret != 0)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 155/206] f2fs: remove percpu_count due to performance regression |
| Message-ID | <sY5hD-2jO-17@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jaegeuk Kim <jaegeuk@kernel.org>
commit 35782b233f37e48ecc469d9c7232f3f6a7fad41a upstream.
This patch removes percpu_count usage due to performance regression in iozone.
Fixes: 523be8a6b3 ("f2fs: use percpu_counter for page counters")
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/f2fs/debug.c | 12 ++++++------
fs/f2fs/f2fs.h | 12 ++++++------
fs/f2fs/super.c | 16 +++++-----------
3 files changed, 17 insertions(+), 23 deletions(-)
--- a/fs/f2fs/debug.c
+++ b/fs/f2fs/debug.c
@@ -310,17 +310,17 @@ static int stat_show(struct seq_file *s,
seq_printf(s, " - Inner Struct Count: tree: %d(%d), node: %d\n",
si->ext_tree, si->zombie_tree, si->ext_node);
seq_puts(s, "\nBalancing F2FS Async:\n");
- seq_printf(s, " - inmem: %4lld, wb_bios: %4d\n",
+ seq_printf(s, " - inmem: %4d, wb_bios: %4d\n",
si->inmem_pages, si->wb_bios);
- seq_printf(s, " - nodes: %4lld in %4d\n",
+ seq_printf(s, " - nodes: %4d in %4d\n",
si->ndirty_node, si->node_pages);
- seq_printf(s, " - dents: %4lld in dirs:%4d (%4d)\n",
+ seq_printf(s, " - dents: %4d in dirs:%4d (%4d)\n",
si->ndirty_dent, si->ndirty_dirs, si->ndirty_all);
- seq_printf(s, " - datas: %4lld in files:%4d\n",
+ seq_printf(s, " - datas: %4d in files:%4d\n",
si->ndirty_data, si->ndirty_files);
- seq_printf(s, " - meta: %4lld in %4d\n",
+ seq_printf(s, " - meta: %4d in %4d\n",
si->ndirty_meta, si->meta_pages);
- seq_printf(s, " - imeta: %4lld\n",
+ seq_printf(s, " - imeta: %4d\n",
si->ndirty_imeta);
seq_printf(s, " - NATs: %9d/%9d\n - SITs: %9d/%9d\n",
si->dirty_nats, si->nats, si->dirty_sits, si->sits);
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -819,7 +819,7 @@ struct f2fs_sb_info {
atomic_t nr_wb_bios; /* # of writeback bios */
/* # of pages, see count_type */
- struct percpu_counter nr_pages[NR_COUNT_TYPE];
+ atomic_t nr_pages[NR_COUNT_TYPE];
/* # of allocated blocks */
struct percpu_counter alloc_valid_block_count;
@@ -1233,7 +1233,7 @@ static inline void dec_valid_block_count
static inline void inc_page_count(struct f2fs_sb_info *sbi, int count_type)
{
- percpu_counter_inc(&sbi->nr_pages[count_type]);
+ atomic_inc(&sbi->nr_pages[count_type]);
if (count_type == F2FS_DIRTY_DATA || count_type == F2FS_INMEM_PAGES)
return;
@@ -1250,7 +1250,7 @@ static inline void inode_inc_dirty_pages
static inline void dec_page_count(struct f2fs_sb_info *sbi, int count_type)
{
- percpu_counter_dec(&sbi->nr_pages[count_type]);
+ atomic_dec(&sbi->nr_pages[count_type]);
}
static inline void inode_dec_dirty_pages(struct inode *inode)
@@ -1266,7 +1266,7 @@ static inline void inode_dec_dirty_pages
static inline s64 get_pages(struct f2fs_sb_info *sbi, int count_type)
{
- return percpu_counter_sum_positive(&sbi->nr_pages[count_type]);
+ return atomic_read(&sbi->nr_pages[count_type]);
}
static inline int get_dirty_pages(struct inode *inode)
@@ -2187,8 +2187,8 @@ struct f2fs_stat_info {
unsigned long long hit_largest, hit_cached, hit_rbtree;
unsigned long long hit_total, total_ext;
int ext_tree, zombie_tree, ext_node;
- s64 ndirty_node, ndirty_dent, ndirty_meta, ndirty_data, ndirty_imeta;
- s64 inmem_pages;
+ int ndirty_node, ndirty_dent, ndirty_meta, ndirty_data, ndirty_imeta;
+ int inmem_pages;
unsigned int ndirty_dirs, ndirty_files, ndirty_all;
int nats, dirty_nats, sits, dirty_sits, fnids;
int total_count, utilization;
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -688,10 +688,6 @@ static void f2fs_destroy_inode(struct in
static void destroy_percpu_info(struct f2fs_sb_info *sbi)
{
- int i;
-
- for (i = 0; i < NR_COUNT_TYPE; i++)
- percpu_counter_destroy(&sbi->nr_pages[i]);
percpu_counter_destroy(&sbi->alloc_valid_block_count);
percpu_counter_destroy(&sbi->total_valid_inode_count);
}
@@ -1442,6 +1438,7 @@ int sanity_check_ckpt(struct f2fs_sb_inf
static void init_sb_info(struct f2fs_sb_info *sbi)
{
struct f2fs_super_block *raw_super = sbi->raw_super;
+ int i;
sbi->log_sectors_per_block =
le32_to_cpu(raw_super->log_sectors_per_block);
@@ -1466,6 +1463,9 @@ static void init_sb_info(struct f2fs_sb_
sbi->interval_time[REQ_TIME] = DEF_IDLE_INTERVAL;
clear_sbi_flag(sbi, SBI_NEED_FSCK);
+ for (i = 0; i < NR_COUNT_TYPE; i++)
+ atomic_set(&sbi->nr_pages[i], 0);
+
INIT_LIST_HEAD(&sbi->s_list);
mutex_init(&sbi->umount_mutex);
mutex_init(&sbi->wio_mutex[NODE]);
@@ -1481,13 +1481,7 @@ static void init_sb_info(struct f2fs_sb_
static int init_percpu_info(struct f2fs_sb_info *sbi)
{
- int i, err;
-
- for (i = 0; i < NR_COUNT_TYPE; i++) {
- err = percpu_counter_init(&sbi->nr_pages[i], 0, GFP_KERNEL);
- if (err)
- return err;
- }
+ int err;
err = percpu_counter_init(&sbi->alloc_valid_block_count, 0, GFP_KERNEL);
if (err)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 182/206] xfs: always succeed when deduping zero bytes |
| Message-ID | <sY5hE-2jO-41@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Darrick J. Wong" <darrick.wong@oracle.com>
commit fba3e594ef0ad911fa8f559732d588172f212d71 upstream.
It turns out that btrfs and xfs had differing interpretations of what
to do when the dedupe length is zero. Change xfs to follow btrfs'
semantics so that the userland interface is consistent.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_reflink.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -1345,8 +1345,14 @@ xfs_reflink_remap_range(
goto out_unlock;
}
- if (len == 0)
+ /* Zero length dedupe exits immediately; reflink goes to EOF. */
+ if (len == 0) {
+ if (is_dedupe) {
+ ret = 0;
+ goto out_unlock;
+ }
len = isize - pos_in;
+ }
/* Ensure offsets don't wrap and the input is inside i_size */
if (pos_in + len < pos_in || pos_out + len < pos_out ||
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 121/206] iommu/vt-d: Fix pasid table size encoding |
| Message-ID | <sY5hE-2jO-39@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jacob Pan <jacob.jun.pan@linux.intel.com>
commit 65ca7f5f7d1cdde6c25172fe6107cd16902f826f upstream.
Different encodings are used to represent supported PASID bits
and number of PASID table entries.
The current code assigns ecap_pss directly to extended context
table entry PTS which is wrong and could result in writing
non-zero bits to the reserved fields. IOMMU fault reason
11 will be reported when reserved bits are nonzero.
This patch converts ecap_pss to extend context entry pts encoding
based on VT-d spec. Chapter 9.4 as follows:
- number of PASID bits = ecap_pss + 1
- number of PASID table entries = 2^(pts + 5)
Software assigned limit of pasid_max value is also respected to
match the allocation limitation of PASID table.
cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
cc: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Tested-by: Mika Kuoppala <mika.kuoppala@intel.com>
Fixes: 2f26e0a9c9860 ('iommu/vt-d: Add basic SVM PASID support')
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iommu/intel-iommu.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -5197,6 +5197,25 @@ static void intel_iommu_remove_device(st
}
#ifdef CONFIG_INTEL_IOMMU_SVM
+#define MAX_NR_PASID_BITS (20)
+static inline unsigned long intel_iommu_get_pts(struct intel_iommu *iommu)
+{
+ /*
+ * Convert ecap_pss to extend context entry pts encoding, also
+ * respect the soft pasid_max value set by the iommu.
+ * - number of PASID bits = ecap_pss + 1
+ * - number of PASID table entries = 2^(pts + 5)
+ * Therefore, pts = ecap_pss - 4
+ * e.g. KBL ecap_pss = 0x13, PASID has 20 bits, pts = 15
+ */
+ if (ecap_pss(iommu->ecap) < 5)
+ return 0;
+
+ /* pasid_max is encoded as actual number of entries not the bits */
+ return find_first_bit((unsigned long *)&iommu->pasid_max,
+ MAX_NR_PASID_BITS) - 5;
+}
+
int intel_iommu_enable_pasid(struct intel_iommu *iommu, struct intel_svm_dev *sdev)
{
struct device_domain_info *info;
@@ -5229,7 +5248,9 @@ int intel_iommu_enable_pasid(struct inte
if (!(ctx_lo & CONTEXT_PASIDE)) {
context[1].hi = (u64)virt_to_phys(iommu->pasid_state_table);
- context[1].lo = (u64)virt_to_phys(iommu->pasid_table) | ecap_pss(iommu->ecap);
+ context[1].lo = (u64)virt_to_phys(iommu->pasid_table) |
+ intel_iommu_get_pts(iommu);
+
wmb();
/* CONTEXT_TT_MULTI_LEVEL and CONTEXT_TT_DEV_IOTLB are both
* extended to permit requests-with-PASID if the PASIDE bit
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 184/206] xfs: track preallocation separately in xfs_bmapi_reserve_delalloc() |
| Message-ID | <sY5hD-2jO-29@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Foster <bfoster@redhat.com>
commit 974ae922efd93b07b6cdf989ae959883f6f05fd8 upstream.
Speculative preallocation is currently processed entirely by the callers
of xfs_bmapi_reserve_delalloc(). The caller determines how much
preallocation to include, adjusts the extent length and passes down the
resulting request.
While this works fine for post-eof speculative preallocation, it is not
as reliable for COW fork preallocation. COW fork preallocation is
implemented via the cowextszhint, which aligns the start offset as well
as the length of the extent. Further, it is difficult for the caller to
accurately identify when preallocation occurs because the returned
extent could have been merged with neighboring extents in the fork.
To simplify this situation and facilitate further COW fork preallocation
enhancements, update xfs_bmapi_reserve_delalloc() to take a separate
preallocation parameter to incorporate into the allocation request. The
preallocation blocks value is tacked onto the end of the request and
adjusted to accommodate neighboring extents and extent size limits.
Since xfs_bmapi_reserve_delalloc() now knows precisely how much
preallocation was included in the allocation, it can also tag the inodes
appropriately to support preallocation reclaim.
Note that xfs_bmapi_reserve_delalloc() callers are not yet updated to
use the preallocation mechanism. This patch should not change behavior
outside of correctly tagging reflink inodes when start offset
preallocation occurs (which the caller does not handle correctly).
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/libxfs/xfs_bmap.c | 23 +++++++++++++++++++++--
fs/xfs/libxfs/xfs_bmap.h | 2 +-
fs/xfs/xfs_iomap.c | 2 +-
fs/xfs/xfs_reflink.c | 2 +-
4 files changed, 24 insertions(+), 5 deletions(-)
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -50,6 +50,7 @@
#include "xfs_ag_resv.h"
#include "xfs_refcount.h"
#include "xfs_rmap_btree.h"
+#include "xfs_icache.h"
kmem_zone_t *xfs_bmap_free_item_zone;
@@ -4247,8 +4248,9 @@ int
xfs_bmapi_reserve_delalloc(
struct xfs_inode *ip,
int whichfork,
- xfs_fileoff_t aoff,
+ xfs_fileoff_t off,
xfs_filblks_t len,
+ xfs_filblks_t prealloc,
struct xfs_bmbt_irec *got,
xfs_extnum_t *lastx,
int eof)
@@ -4260,10 +4262,17 @@ xfs_bmapi_reserve_delalloc(
char rt = XFS_IS_REALTIME_INODE(ip);
xfs_extlen_t extsz;
int error;
+ xfs_fileoff_t aoff = off;
- alen = XFS_FILBLKS_MIN(len, MAXEXTLEN);
+ /*
+ * Cap the alloc length. Keep track of prealloc so we know whether to
+ * tag the inode before we return.
+ */
+ alen = XFS_FILBLKS_MIN(len + prealloc, MAXEXTLEN);
if (!eof)
alen = XFS_FILBLKS_MIN(alen, got->br_startoff - aoff);
+ if (prealloc && alen >= len)
+ prealloc = alen - len;
/* Figure out the extent size, adjust alen */
if (whichfork == XFS_COW_FORK)
@@ -4329,6 +4338,16 @@ xfs_bmapi_reserve_delalloc(
*/
xfs_bmbt_get_all(xfs_iext_get_ext(ifp, *lastx), got);
+ /*
+ * Tag the inode if blocks were preallocated. Note that COW fork
+ * preallocation can occur at the start or end of the extent, even when
+ * prealloc == 0, so we must also check the aligned offset and length.
+ */
+ if (whichfork == XFS_DATA_FORK && prealloc)
+ xfs_inode_set_eofblocks_tag(ip);
+ if (whichfork == XFS_COW_FORK && (prealloc || aoff < off || alen > len))
+ xfs_inode_set_cowblocks_tag(ip);
+
ASSERT(got->br_startoff <= aoff);
ASSERT(got->br_startoff + got->br_blockcount >= aoff + alen);
ASSERT(isnullstartblock(got->br_startblock));
--- a/fs/xfs/libxfs/xfs_bmap.h
+++ b/fs/xfs/libxfs/xfs_bmap.h
@@ -242,7 +242,7 @@ struct xfs_bmbt_rec_host *
int fork, int *eofp, xfs_extnum_t *lastxp,
struct xfs_bmbt_irec *gotp, struct xfs_bmbt_irec *prevp);
int xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
- xfs_fileoff_t aoff, xfs_filblks_t len,
+ xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
struct xfs_bmbt_irec *got, xfs_extnum_t *lastx, int eof);
enum xfs_bmap_intent_type {
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -622,7 +622,7 @@ xfs_file_iomap_begin_delay(
retry:
error = xfs_bmapi_reserve_delalloc(ip, XFS_DATA_FORK, offset_fsb,
- end_fsb - offset_fsb, &got, &idx, eof);
+ end_fsb - offset_fsb, 0, &got, &idx, eof);
switch (error) {
case 0:
break;
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -293,7 +293,7 @@ xfs_reflink_reserve_cow(
retry:
error = xfs_bmapi_reserve_delalloc(ip, XFS_COW_FORK, imap->br_startoff,
- end_fsb - imap->br_startoff, &got, &idx, eof);
+ end_fsb - imap->br_startoff, 0, &got, &idx, eof);
switch (error) {
case 0:
break;
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 175/206] xfs: dont skip cow forks w/ delalloc blocks in cowblocks scan |
| Message-ID | <sY5hE-2jO-47@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Foster <bfoster@redhat.com>
commit 399372349a7f9b2d7e56e4fa4467c69822d07024 upstream.
The cowblocks background scanner currently clears the cowblocks tag
for inodes without any real allocations in the cow fork. This
excludes inodes with only delalloc blocks in the cow fork. While we
might never expect to clear delalloc blocks from the cow fork in the
background scanner, it is not necessarily correct to clear the
cowblocks tag from such inodes.
For example, if the background scanner happens to process an inode
between a buffered write and writeback, the scanner catches the
inode in a state after delalloc blocks have been allocated to the
cow fork but before the delalloc blocks have been converted to real
blocks by writeback. The background scanner then incorrectly clears
the cowblocks tag, even if part of the aforementioned delalloc
reservation will not be remapped to the data fork (i.e., extra
blocks due to the cowextsize hint). This means that any such
additional blocks in the cow fork might never be reclaimed by the
background scanner and could persist until the inode itself is
reclaimed.
To address this problem, only skip and clear inodes without any cow
fork allocations whatsoever from the background scanner. While we
generally do not want to cancel delalloc reservations from the
background scanner, the pagecache dirty check following the
cowblocks check should prevent that situation. If we do end up with
delalloc cow fork blocks without a dirty address space mapping, this
is probably an indication that something has gone wrong and the
blocks should be reclaimed, as they may never be converted to a real
allocation.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/xfs_icache.c | 7 ++++++-
fs/xfs/xfs_reflink.c | 34 ----------------------------------
fs/xfs/xfs_reflink.h | 2 --
3 files changed, 6 insertions(+), 37 deletions(-)
--- a/fs/xfs/xfs_icache.c
+++ b/fs/xfs/xfs_icache.c
@@ -1580,10 +1580,15 @@ xfs_inode_free_cowblocks(
struct xfs_eofblocks *eofb = args;
bool need_iolock = true;
int match;
+ struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_COW_FORK);
ASSERT(!eofb || (eofb && eofb->eof_scan_owner != 0));
- if (!xfs_reflink_has_real_cow_blocks(ip)) {
+ /*
+ * Just clear the tag if we have an empty cow fork or none at all. It's
+ * possible the inode was fully unshared since it was originally tagged.
+ */
+ if (!xfs_is_reflink_inode(ip) || !ifp->if_bytes) {
trace_xfs_inode_free_cowblocks_invalid(ip);
xfs_inode_clear_cowblocks_tag(ip);
return 0;
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -1697,37 +1697,3 @@ out:
trace_xfs_reflink_unshare_error(ip, error, _RET_IP_);
return error;
}
-
-/*
- * Does this inode have any real CoW reservations?
- */
-bool
-xfs_reflink_has_real_cow_blocks(
- struct xfs_inode *ip)
-{
- struct xfs_bmbt_irec irec;
- struct xfs_ifork *ifp;
- struct xfs_bmbt_rec_host *gotp;
- xfs_extnum_t idx;
-
- if (!xfs_is_reflink_inode(ip))
- return false;
-
- /* Go find the old extent in the CoW fork. */
- ifp = XFS_IFORK_PTR(ip, XFS_COW_FORK);
- gotp = xfs_iext_bno_to_ext(ifp, 0, &idx);
- while (gotp) {
- xfs_bmbt_get_all(gotp, &irec);
-
- if (!isnullstartblock(irec.br_startblock))
- return true;
-
- /* Roll on... */
- idx++;
- if (idx >= ifp->if_bytes / sizeof(xfs_bmbt_rec_t))
- break;
- gotp = xfs_iext_get_ext(ifp, idx);
- }
-
- return false;
-}
--- a/fs/xfs/xfs_reflink.h
+++ b/fs/xfs/xfs_reflink.h
@@ -50,6 +50,4 @@ extern int xfs_reflink_clear_inode_flag(
extern int xfs_reflink_unshare(struct xfs_inode *ip, xfs_off_t offset,
xfs_off_t len);
-extern bool xfs_reflink_has_real_cow_blocks(struct xfs_inode *ip);
-
#endif /* __XFS_REFLINK_H */
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:10 +0100 |
| Subject | [PATCH 4.9 180/206] xfs: new inode extent list lookup helpers |
| Message-ID | <sY5hE-2jO-43@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
commit 93533c7855c3c78c8a900cac65c8d669bb14935d upstream.
xfs_iext_lookup_extent looks up a single extent at the passed in offset,
and returns the extent covering the area, or the one behind it in case
of a hole, as well as the index of the returned extent in arguments,
as well as a simple bool as return value that is set to false if no
extent could be found because the offset is behind EOF. It is a simpler
replacement for xfs_bmap_search_extent that leaves looking up the rarely
needed previous extent to the caller and has a nicer calling convention.
xfs_iext_get_extent is a helper for iterating over the extent list,
it takes an extent index as input, and returns the extent at that index
in it's expanded form in an argument if it exists. The actual return
value is a bool whether the index is valid or not.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/xfs/libxfs/xfs_inode_fork.c | 46 +++++++++++++++++++++++++++++++++++++++++
fs/xfs/libxfs/xfs_inode_fork.h | 6 +++++
2 files changed, 52 insertions(+)
--- a/fs/xfs/libxfs/xfs_inode_fork.c
+++ b/fs/xfs/libxfs/xfs_inode_fork.c
@@ -2003,3 +2003,49 @@ xfs_ifork_init_cow(
ip->i_cformat = XFS_DINODE_FMT_EXTENTS;
ip->i_cnextents = 0;
}
+
+/*
+ * Lookup the extent covering bno.
+ *
+ * If there is an extent covering bno return the extent index, and store the
+ * expanded extent structure in *gotp, and the extent index in *idx.
+ * If there is no extent covering bno, but there is an extent after it (e.g.
+ * it lies in a hole) return that extent in *gotp and its index in *idx
+ * instead.
+ * If bno is beyond the last extent return false, and return the index after
+ * the last valid index in *idxp.
+ */
+bool
+xfs_iext_lookup_extent(
+ struct xfs_inode *ip,
+ struct xfs_ifork *ifp,
+ xfs_fileoff_t bno,
+ xfs_extnum_t *idxp,
+ struct xfs_bmbt_irec *gotp)
+{
+ struct xfs_bmbt_rec_host *ep;
+
+ XFS_STATS_INC(ip->i_mount, xs_look_exlist);
+
+ ep = xfs_iext_bno_to_ext(ifp, bno, idxp);
+ if (!ep)
+ return false;
+ xfs_bmbt_get_all(ep, gotp);
+ return true;
+}
+
+/*
+ * Return true if there is an extent at index idx, and return the expanded
+ * extent structure at idx in that case. Else return false.
+ */
+bool
+xfs_iext_get_extent(
+ struct xfs_ifork *ifp,
+ xfs_extnum_t idx,
+ struct xfs_bmbt_irec *gotp)
+{
+ if (idx < 0 || idx >= xfs_iext_count(ifp))
+ return false;
+ xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), gotp);
+ return true;
+}
--- a/fs/xfs/libxfs/xfs_inode_fork.h
+++ b/fs/xfs/libxfs/xfs_inode_fork.h
@@ -182,6 +182,12 @@ void xfs_iext_irec_compact_pages(struct
void xfs_iext_irec_compact_full(struct xfs_ifork *);
void xfs_iext_irec_update_extoffs(struct xfs_ifork *, int, int);
+bool xfs_iext_lookup_extent(struct xfs_inode *ip,
+ struct xfs_ifork *ifp, xfs_fileoff_t bno,
+ xfs_extnum_t *idxp, struct xfs_bmbt_irec *gotp);
+bool xfs_iext_get_extent(struct xfs_ifork *ifp, xfs_extnum_t idx,
+ struct xfs_bmbt_irec *gotp);
+
extern struct kmem_zone *xfs_ifork_zone;
extern void xfs_ifork_init_cow(struct xfs_inode *ip);
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:30 +0100 |
| Subject | [PATCH 4.9 150/206] crypto: arm64/sha1-ce - fix for big endian |
| Message-ID | <sY5AZ-2so-3@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
commit ee71e5f1e7d25543ee63a80451871f8985b8d431 upstream.
The SHA1 digest is an array of 5 32-bit quantities, so we should refer
to them as such in order for this code to work correctly when built for
big endian. So replace 16 byte scalar loads and stores with 4x4 vector
ones where appropriate.
Fixes: 2c98833a42cd ("arm64/crypto: SHA-1 using ARMv8 Crypto Extensions")
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm64/crypto/sha1-ce-core.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/arm64/crypto/sha1-ce-core.S
+++ b/arch/arm64/crypto/sha1-ce-core.S
@@ -78,7 +78,7 @@ ENTRY(sha1_ce_transform)
ld1r {k3.4s}, [x6]
/* load state */
- ldr dga, [x0]
+ ld1 {dgav.4s}, [x0]
ldr dgb, [x0, #16]
/* load sha1_ce_state::finalize */
@@ -144,7 +144,7 @@ CPU_LE( rev32 v11.16b, v11.16b )
b 1b
/* store new state */
-3: str dga, [x0]
+3: st1 {dgav.4s}, [x0]
str dgb, [x0, #16]
ret
ENDPROC(sha1_ce_transform)
[toc] | [prev] | [next] | [standalone]
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2017-01-10 15:30 +0100 |
| Subject | [PATCH 4.9 153/206] md: MD_RECOVERY_NEEDED is set for mddev->recovery |
| Message-ID | <sY5AZ-2so-5@gated-at.bofh.it> |
| In reply to | #1555313 |
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Shaohua Li <shli@fb.com>
commit 82a301cb0ea2df8a5c88213094a01660067c7fb4 upstream.
Fixes: 90f5f7ad4f38("md: Wait for md_check_recovery before attempting device
removal.")
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/md/md.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -6829,7 +6829,7 @@ static int md_ioctl(struct block_device
/* need to ensure recovery thread has run */
wait_event_interruptible_timeout(mddev->sb_wait,
!test_bit(MD_RECOVERY_NEEDED,
- &mddev->flags),
+ &mddev->recovery),
msecs_to_jiffies(5000));
if (cmd == STOP_ARRAY || cmd == STOP_ARRAY_RO) {
/* Need to flush page cache, and ensure no-one else opens
[toc] | [prev] | [next] | [standalone]
Page 5 of 9 — ← Prev page 1 2 3 4 [5] 6 7 8 9 Next page →
Back to top | Article view | linux.kernel
csiph-web