AgeCommit message (Collapse)AuthorLines
2009-12-17Linux 2.6.33-rc1v2.6.33-rc1Linus Torvalds-2/+2
2009-12-17Merge branch 'cpumask-cleanups' of ↵Linus Torvalds-45/+33
git:// * 'cpumask-cleanups' of git:// cpumask: rename tsk_cpumask to tsk_cpus_allowed cpumask: don't recommend set_cpus_allowed hack in Documentation/cpu-hotplug.txt cpumask: avoid dereferencing struct cpumask cpumask: convert drivers/idle/i7300_idle.c to cpumask_var_t cpumask: use modern cpumask style in drivers/scsi/fcoe/fcoe.c cpumask: avoid deprecated function in mm/slab.c cpumask: use cpu_online in kernel/perf_event.c
2009-12-17Merge branch 'for-linus' of ↵Linus Torvalds-3/+24
git:// * 'for-linus' of git:// Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture support NOMMU: Optimise away the {dac_,}mmap_min_addr tests security/min_addr.c: make init_mmap_min_addr() static keys: PTR_ERR return of wrong pointer in keyctl_get_security()
2009-12-17Merge branch 'omap-fixes-for-linus' of ↵Linus Torvalds-27/+29
git:// * 'omap-fixes-for-linus' of git:// OMAP3: serial - fix bug introduced in mfd: twl: fix twl4030 rename for remaining driver, board files USB ehci: replace mach header with plat omap3: Allow EHCI to be built on OMAP3
2009-12-17Merge branch 'hwmon-for-linus' of ↵Linus Torvalds-30/+766
git:// * 'hwmon-for-linus' of git:// hwmon: (w83627hf) Fix for "No such device" hwmon: (sht15) Off-by-one error in array index + incorrect constants hwmon: Add driver for VIA CPU core temperature hwmon: (smsc47m1) Enable device if needed hwmon: (smsc47m1) Fail module loading on error hwmon: (smsc47m1) Only request I/O ports we really use hwmon: New driver for AMD Family 10h/11h CPUs
2009-12-17Merge git:// Torvalds-360/+4914
* git:// (40 commits) [SCSI] 3w-9xxx fix bug in sgl loading [SCSI] fcoe, libfc: adds enable/disable for fcoe interface [SCSI] libfc: reduce hold time on SCSI host lock [SCSI] libfc: remote port gets stuck in restart state without really restarting [SCSI] pm8001: misc code cleanup [SCSI] pm8001: enable read HBA SAS address from VPD [SCSI] pm8001: do not reset local sata as it will not be found if reset [SCSI] pm8001: bit set pm8001_ha->flags [SCSI] pm8001:fix potential NULL pointer dereference [SCSI] pm8001: set SSC down-spreading only to get less errors on some 6G device. [SCSI] pm8001: fix endian issues with SAS address [SCSI] pm8001: enhance error handle for IO patch [SCSI] pm8001: Fix for sata io circular lock dependency. [SCSI] hpsa: add driver for HP Smart Array controllers. [SCSI] cxgb3i: always use negative errno in case of error [SCSI] bnx2i: minor code cleanup and update driver version [SCSI] bnx2i: Task management ABORT TASK fixes [SCSI] bnx2i: update CQ arming algorith for 5771x chipsets [SCSI] bnx2i: Adjust sq_size module parametr to power of 2 only if a non-zero value is specified [SCSI] bnx2i: Add 5771E device support to bnx2i driver ...
2009-12-17Merge branch 'upstream' of git:// Torvalds-4878/+18310
* 'upstream' of git:// (71 commits) MIPS: Lasat: Fix botched changes to sysctl code. RTC: rtc-cmos.c: Fix warning on MIPS MIPS: Cleanup random differences beween lmo and Linus' kernel. MIPS: No longer hardwire CONFIG_EMBEDDED to y MIPS: Fix and enhance built-in kernel command line MIPS: eXcite: Remove platform. MIPS: Loongson: Cleanups of serial port support MIPS: Lemote 2F: Suspend CS5536 MFGPT Timer MIPS: Excite: move iodev_remove to .devexit.text MIPS: Lasat: Convert to proc_fops / seq_file MIPS: Cleanup signal code initialization MIPS: Modularize COP2 handling MIPS: Move EARLY_PRINTK to Kconfig.debug MIPS: Yeeloong 2F: Cleanup reset logic using the new ec_write function MIPS: Yeeloong 2F: Add LID open event as the wakeup event MIPS: Yeeloong 2F: Add basic EC operations MIPS: Move several variables from .bss to MIPS: Tracing: Make function graph tracer work with -mmcount-ra-address MIPS: Tracing: Reserve $12(t0) for mcount-ra-address of gcc 4.5 MIPS: Tracing: Make ftrace for MIPS work without -fno-omit-frame-pointer ...
2009-12-17Merge branch 'for-linus' of ↵Linus Torvalds-914/+1171
git:// * 'for-linus' of git:// Btrfs: make sure fallocate properly starts a transaction Btrfs: make metadata chunks smaller Btrfs: Show discard option in /proc/mounts Btrfs: deny sys_link across subvolumes. Btrfs: fail mount on bad mount options Btrfs: don't add extent 0 to the free space cache v2 Btrfs: Fix per root used space accounting Btrfs: Fix btrfs_drop_extent_cache for skip pinned case Btrfs: Add delayed iput Btrfs: Pass transaction handle to security and ACL initialization functions Btrfs: Make truncate(2) more ENOSPC friendly Btrfs: Make fallocate(2) more ENOSPC friendly Btrfs: Avoid orphan inodes cleanup during committing transaction Btrfs: Avoid orphan inodes cleanup while replaying log Btrfs: Fix disk_i_size update corner case Btrfs: Rewrite btrfs_drop_extents Btrfs: Add btrfs_duplicate_item Btrfs: Avoid superfluous tree-log writeout
2009-12-17Merge branch 'kmemleak' of git:// Torvalds-100/+118
* 'kmemleak' of git:// kmemleak: fix kconfig for crc32 build error kmemleak: Reduce the false positives by checking for modified objects kmemleak: Show the age of an unreferenced object kmemleak: Release the object lock before calling put_object() kmemleak: Scan the _ftrace_events section in modules kmemleak: Simplify the kmemleak_scan_area() function prototype kmemleak: Do not use off-slab management with SLAB_NOLEAKTRACE
2009-12-17Merge branch 'next-spi' of git:// Torvalds-33/+2950
* 'next-spi' of git:// spi: spi_txx9.c: use resource_size() spi: spi_sh_sci.c: use resource_size() spi: spi_mpc8xxx.c: use resource_size() spi: spi_bfin5xx.c: use resource_size() spi: atmel_spi.c: use resource_size() spi: Add s3c64xx SPI Controller driver atmel_spi: fix dma addr calculation for len > BUFFER_SIZE spi_s3c24xx: add FIQ pseudo-DMA support spi: controller driver for Designware SPI core spidev: add proper section markers spidev: use DECLARE_BITMAP instead of declaring the array
2009-12-17Merge branch 'for-linus' of git:// Torvalds-29/+50
* 'for-linus' of git:// backlight: mbp_nvidia_bl - add two more MacBookPro variants backlight: Pass device through notify callback in the pwm driver backlight: PTR_ERR return of wrong pointer in cr_backlight_probe() backlight: Constify struct backlight_ops backlight/thinkpad-acpi: issue backlight class events Fix up trivial conflicts in thinkpad-acpi support (backlight support already merged earlier).
2009-12-17Merge branch 'for-linus' of git:// Torvalds-41/+1418
* 'for-linus' of git:// leds: leds-pwm: Set led_classdev max_brightness leds: leds-lp3944.h - remove unneeded includes leds: use default-on trigger for Cobalt Qube leds: drivers/leds/leds-ss4200.c: fix return statement leds: leds-pca9532.h- indent with tabs, not spaces leds: Add LED class driver for regulator driven LEDs. leds: leds-cobalt-qube.c: use resource_size() leds: leds-cobalt-raq.c - use resource_size() leds: Add driver for ADP5520/ADP5501 MFD PMICs leds: Add driver for LT3593 controlled LEDs leds-ss4200: Check pci_enable_device return leds: leds-alix2c - take port address from MSR leds: LED driver for Intel NAS SS4200 series (v5)
2009-12-17Merge branch 'for-linus' of Torvalds-164/+607
* 'for-linus' of PCMCIA: fix pxa2xx_lubbock modular build error [ARM] Update mach-types [ARM] pxa: fix no reference of cpu_is_pxa25x() in devices.c [ARM] pxa/cm-x300: add PWM backlight support revert "[ARM] pxa/cm-x300: add PWM backlight support" ARM: use flush_kernel_dcache_area() for dmabounce ARM: add size argument to __cpuc_flush_dcache_page ARM: 5848/1: kill flush_ioremap_region() ARM: cache-l2x0: make better use of background cache handling ARM: cache-l2x0: avoid taking spinlock for every iteration [ARM] Kirkwood: Add LaCie Network Space v2 support ARM: dove: fix the mm mmu flags of the pj4 procinfo
2009-12-17printk: fix new kernel-doc warningsRandy Dunlap-2/+2
Fix kernel-doc warnings in printk.c: Warning(kernel/printk.c:1422): No description found for parameter 'dumper' Warning(kernel/printk.c:1422): Excess function parameter 'dump' description in 'kmsg_dump_register' Warning(kernel/printk.c:1451): No description found for parameter 'dumper' Warning(kernel/printk.c:1451): Excess function parameter 'dump' description in 'kmsg_dump_unregister' Signed-off-by: Randy Dunlap <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17readahead: add blk_run_backing_devHisashi Hifumi-0/+12
I added blk_run_backing_dev on page_cache_async_readahead so readahead I/O is unpluged to improve throughput on especially RAID environment. The normal case is, if page N become uptodate at time T(N), then T(N) <= T(N+1) holds. With RAID (and NFS to some degree), there is no strict ordering, the data arrival time depends on runtime status of individual disks, which breaks that formula. So in do_generic_file_read(), just after submitting the async readahead IO request, the current page may well be uptodate, so the page won't be locked, and the block device won't be implicitly unplugged: if (PageReadahead(page)) page_cache_async_readahead() if (!PageUptodate(page)) goto page_not_up_to_date; //... page_not_up_to_date: lock_page_killable(page); Therefore explicit unplugging can help. Following is the test result with dd. #dd if=testdir/testfile of=/dev/null bs=16384 -2.6.30-rc6 1048576+0 records in 1048576+0 records out 17179869184 bytes (17 GB) copied, 224.182 seconds, 76.6 MB/s -2.6.30-rc6-patched 1048576+0 records in 1048576+0 records out 17179869184 bytes (17 GB) copied, 206.465 seconds, 83.2 MB/s (7Disks RAID-0 Array) -2.6.30-rc6 1054976+0 records in 1054976+0 records out 17284726784 bytes (17 GB) copied, 212.233 seconds, 81.4 MB/s -2.6.30-rc6-patched 1054976+0 records out 17284726784 bytes (17 GB) copied, 198.878 seconds, 86.9 MB/s (7Disks RAID-5 Array) The patch was found to improve performance with the SCST scsi target driver. See [ unbust comment layout] [ "fix" CONFIG_BLOCK=n] Signed-off-by: Hisashi Hifumi <> Acked-by: Wu Fengguang <> Cc: Jens Axboe <> Cc: KOSAKI Motohiro <> Tested-by: Ronald <> Cc: Bart Van Assche <> Cc: Vladislav Bolkhovitin <> Cc: Randy Dunlap <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17rtc: set wakeup capability for I2C and SPI RTC driversAnton Vorontsov-0/+6
RTC core won't allow wakeup alarms to be set if RTC devices' parent (i.e. i2c_client or spi_device) isn't wakeup capable. For I2C devices there is I2C_CLIENT_WAKE flag exists that we can pass via board info, and if set, I2C core will initialize wakeup capability. For SPI devices there is no such flag at all. I believe that it's not platform code responsibility to allow or disallow wakeups, instead, drivers themselves should set the capability if a device can trigger wakeups. That's what drivers/base/power/sysfs.c says: * It is the responsibility of device drivers to enable (or disable) * wakeup signaling as part of changing device power states, respecting * the policy choices provided through the driver model. I2C and SPI RTC devices send wakeup events via interrupt lines, so we should set the wakeup capability if IRQ is routed. Ideally we should also check irq for wakeup capability before setting device's capability, i.e. if (can_irq_wake(irq)) device_set_wakeup_capable(&client->dev, 1); But there is no can_irq_wake() call exist, and it is not that trivial to implement it for all interrupts controllers and complex/cascaded setups. drivers/base/power/sysfs.c also covers these cases: * Devices may not be able to generate wakeup events from all power * states. Also, the events may be ignored in some configurations; * for example, they might need help from other devices that aren't * active So there is no guarantee that wakeup will actually work, and so I think there is no point in being pedantic wrt checking IRQ wakeup capability. Signed-off-by: Anton Vorontsov <> Cc: David Brownell <> Cc: Ben Dooks <> Cc: Jean Delvare <> Cc: Alessandro Zummo <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdhci-of: add support for the wii sdhci controllerAlbert Herranz-1/+82
Add support for the Secure Digital Host Controller Interface found on the "Hollywood" chipset of the Nintendo Wii video game console. Signed-off-by: Albert Herranz <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdhci-of: reorganize driver to support additional hardwareAlbert Herranz-127/+224
This patch breaks down sdhci-of into a core portion and a eSDHC portion, clearing the path to easily support additional hardware using the same OF driver. Signed-off-by: Albert Herranz <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdhci-of: rename main driver file prior to reorganizationAlbert Herranz-1/+3
This patch renames sdhci-of.c to sdhci-of-core.c before reorganizing the driver to support additional hardware. The driver is still built as sdhci-of despite the rename of the file. No functional change. Signed-off-by: Albert Herranz <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdhci: protect header file against multi inclusionAlbert Herranz-0/+4
Signed-off-by: Albert Herranz <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdio: initialise SDIO functions and update card->sdio_funcs in lockstepMatt Fleming-2/+3
Daniel Drake noticed a crash in the error path of mmc_attach_sdio(). This bug is discussed at BUG: unable to handle kernel paging request at 6b6b6c57 IP: [<b066d6e2>] sdio_remove_func+0x9/0x27 Call Trace: [<b066cfb4>] ? mmc_sdio_remove+0x34/0x65 [<b066d1fc>] ? mmc_attach_sdio+0x217/0x240 [<b066a22f>] ? mmc_rescan+0x1a2/0x20f [<b042e9a0>] ? worker_thread+0x156/0x1e We need to accurately track how many SDIO functions have been initialised (and keep card->sdio_funcs in sync) so that we don't try to remove more functions than we initialised if we hit the error path in mmc_attach_sdio(). Without this patch if we hit the error path in mmc_attach_sdio() we run the risk of deferencing invalid memory in sdio_remove_func(), leading to a crash. Signed-off-by: Matt Fleming <> Cc: Daniel Drake <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17sdio: fix reference counting in sdio_remove_func()Daniel Drake-2/+5
sdio_remove_func() needs to be more careful about reference counting. It can be called in error paths where sdio_add_func() has never been called e.g. mmc_attach_sdio error path --> mmc_sdio_remove --> sdio_remove_func Signed-off-by: Daniel Drake <> Reviewed-by: Matt Fleming <> Cc: <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17mm: introduce coredump parameter structureMasami Hiramatsu-53/+69
Introduce coredump parameter data structure (struct coredump_params) to simplify binfmt->core_dump() arguments. Signed-off-by: Masami Hiramatsu <> Suggested-by: Ingo Molnar <> Cc: Hidehiro Kawai <> Cc: Oleg Nesterov <> Cc: Roland McGrath <> Cc: KOSAKI Motohiro <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17do_wait() optimization: do not place sub-threads on task_struct->children listOleg Nesterov-20/+20
Thanks to Roland who pointed out de_thread() issues. Currently we add sub-threads to ->real_parent->children list. This buys nothing but slows down do_wait(). With this patch ->children contains only main threads (group leaders). The only complication is that forget_original_parent() should iterate over sub-threads by hand, and de_thread() needs another list_replace() when it changes ->group_leader. Henceforth do_wait_thread() can never see task_detached() && !EXIT_DEAD tasks, we can remove this check (and we can unify do_wait_thread() and ptrace_do_wait()). This change can confuse the optimistic search in mm_update_next_owner(), but this is fixable and minor. Perhaps badness() and oom_kill_process() should be updated, but they should be fixed in any case. Signed-off-by: Oleg Nesterov <> Cc: Roland McGrath <> Cc: Ingo Molnar <> Cc: Ratan Nalumasu <> Cc: Vitaly Mayatskikh <> Cc: David Rientjes <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17nommu: ramfs: remove unused local varMike Frysinger-1/+1
Signed-off-by: Mike Frysinger <> Cc: David Howells <> Acked-by: Greg Ungerer <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17lib/vsprintf.c: document more vsnprintf extensionsUwe Kleine-König-1/+12
These were added in 9ac6e44 (lib/vsprintf.c: add %pU to print UUID/GUIDs) c7dabef (vsprintf: use %pR, %pr instead of %pRt, %pRf) 8a27f7c (lib/vsprintf.c: Add "%pI6c" - print pointer as compressed ipv6 address) 4aa9960 (printk: add %I4, %I6, %i4, %i6 format specifiers) dd45c9c (printk: add %pM format specifier for MAC addresses) but only added comments to pointer() not vsnprintf() that is refered to by printk's comments. Signed-off-by: Uwe Kleine-König <> Cc: Harvey Harrison <> Cc: David S. Miller <> Cc: Joe Perches <> Cc: Jens Rosenboom <> Cc: David S. Miller <> Cc: Bjorn Helgaas <> Cc: Jesse Barnes <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17vt: don't export vt_kmsg_redirect() to userspaceBernhard Walle-0/+4
Fix following warning in linux-next by guarding the function definition (both the "extern" and the inline) with #ifdef __KERNEL__. usr/include/linux/vt.h:89: userspace cannot call function or variable defined in the kernel Introduced by commit 5ada918b82399eef3afd6a71e3637697d6bd719f ("vt: introduce and use vt_kmsg_redirect() function"). Signed-off-by: Bernhard Walle <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17drivers/video/via/viafbdev.c: correct code taking the size of a pointerJulia Lawall-2/+2
sizeof(viafb_gamma_table) is just the size of the pointer. This is changed to the size used when calling kmalloc to initialize the pointer. A simplified version of the semantic patch that finds this problem is as follows: ( // <smpl> @@ expression *x; expression f; type T; @@ *f(...,(T)x,...) // </smpl> Signed-off-by: Julia Lawall <> Acked-by: Florian Tobias Schandinat <> Cc: Joseph Chan <> Cc: Scott Fang <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17hwmon: I2C bus support for lis3lv02d and variant accelerometer chipsSamu Onkalo-0/+201
Signed-off-by: Samu Onkalo <> Cc: Éric Piel <> Cc: Kalhan Trisal <> Cc: Jean Delvare <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17reiserfs: truncate blocks not used by a writeJan Kara-4/+14
It can happen that write does not use all the blocks allocated in write_begin either because of some filesystem error (like ENOSPC) or because page with data to write has been removed from memory. We truncate these blocks so that we don't have dangling blocks beyond i_size. Cc: Jeff Mahoney <> Signed-off-by: Jan Kara <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17cs5535: CS5535_MFGPT_DEFAULT_IRQ should depend on CS5535_MFGPTGeert Uytterhoeven-0/+1
It doesn't make much sense to have CS5535_MFGPT_DEFAULT_IRQ show up in configs that cannot have CS5535_MFGPT. Signed-off-by: Geert Uytterhoeven <> Acked-by: Andres Salomon <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17kernel/sysctl.c: fix the incomplete part of ↵WANG Cong-1/+1
sysctl_max_map_count-should-be-non-negative.patch It is a mistake that we used 'proc_dointvec', it should be 'proc_dointvec_minmax', as in the original patch. Signed-off-by: WANG Cong <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17Merge branch 'cache' (early part)Russell King-155/+224
2009-12-17Revert "task_struct: make journal_info conditional"Linus Torvalds-20/+1
This reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as requested by Alexey: "I think I gave a good enough arguments to not merge it. To iterate: * patch makes impossible to start using ext3 on EXT3_FS=n kernels without reboot. * this is done only for one pointer on task_struct" None of config options which define task_struct are tristate directly or effectively." Requested-by: Alexey Dobriyan <> Acked-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
2009-12-17Merge branch 'master' of ↵Chris Mason-4/+9
ssh:// into for-linus
2009-12-17Revert "fix mismerge with Trond's stuff (create_mnt_ns() export is gone now)"Linus Torvalds-1/+11
This reverts commit e9496ff46a20a8592fdc7bdaaf41b45eb808d310. Quoth Al: "it's dependent on a lot of other stuff not currently in mainline and badly broken with current fs/namespace.c. Sorry, badly out-of-order cherry-pick from old queue. PS: there's a large pending series reworking the refcounting and lifetime rules for vfsmounts that will, among other things, allow to rip a subtree away _without_ dissolving connections in it, to be garbage-collected when all active references are gone. It's considerably saner wrt "is the subtree busy" logics, but it's nowhere near being ready for merge at the moment; this changeset is one of the things becoming possible with that sucker, but it certainly shouldn't have been picked during this cycle. My apologies..." Noticed-by: Eric Paris <> Requested-by: Al Viro <> Signed-off-by: Linus Torvalds <>
2009-12-17Btrfs: make sure fallocate properly starts a transactionChris Mason-4/+9
The recent patch to make fallocate enospc friendly would send down a NULL trans handle to the allocator. This moves the transaction start to properly fix things. Signed-off-by: Chris Mason <>
2009-12-17Merge branch btrfs-master into for-linusChris Mason-916/+1168
Conflicts: fs/btrfs/acl.c
2009-12-17Btrfs: make metadata chunks smallerJosef Bacik-11/+2
This patch makes us a bit less zealous about making sure we have enough free metadata space by pearing down the size of new metadata chunks to 256mb instead of 1gb. Also, we used to try an allocate metadata chunks when allocating data, but that sort of thing is done elsewhere now so we can just remove it. With my -ENOSPC test I used to have 3gb reserved for metadata out of 75gb, now I have 1.7gb. Thanks, Signed-off-by: Josef Bacik <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Show discard option in /proc/mountsMatthew Wilcox-0/+2
Christoph's patch e244a0aeb6a599c19a7c802cda6e2d67c847b154 doesn't display the discard option in /proc/mounts, leading to some confusion for me. Here's the missing bit. Signed-off-by: Matthew Wilcox <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: deny sys_link across subvolumes.TARUISI Hiroaki-0/+4
I rebased Christian Parpart's patch to deny hard link across subvolumes. Original patch modifies also btrfs_rename, but I excluded it because we can move across subvolumes now and it make no problem. ----------------- Hard link across subvolumes should not allowed in Btrfs. btrfs_link checks root of 'to' directory is same as root of 'from' file. If not same, btrfs_link returns -EPERM. Signed-off-by: TARUISI Hiroaki <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: fail mount on bad mount optionsSage Weil-1/+8
We shouldn't silently ignore unrecognized options. Signed-off-by: Sage Weil <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: don't add extent 0 to the free space cache v2Yan, Zheng-1/+9
If block group 0 is completely free, btrfs_read_block_groups will add extent [0, BTRFS_SUPER_INFO_OFFSET) to the free space cache. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Fix per root used space accountingYan, Zheng-27/+47
The bytes_used field in root item was originally planned to trace the amount of used data and tree blocks. But it never worked right since we can't trace freeing of data accurately. This patch changes it to only trace the amount of tree blocks. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Fix btrfs_drop_extent_cache for skip pinned caseYan, Zheng-7/+3
The check for skip pinned case is wrong, it may breaks the while loop too soon. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Add delayed iputYan, Zheng-18/+90
iput() can trigger new transactions if we are dropping the final reference, so calling it in btrfs_commit_transaction may end up deadlock. This patch adds delayed iput to avoid the issue. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Pass transaction handle to security and ACL initialization functionsYan, Zheng-63/+96
Pass transaction handle down to security and ACL initialization functions, so we can avoid starting nested transactions Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Make truncate(2) more ENOSPC friendlyYan, Zheng-137/+212
truncating and deleting regular files are unbound operations, so it's not good to do them in a single transaction. This patch makes btrfs_truncate and btrfs_delete_inode start a new transaction after all items in a tree leaf are deleted. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Make fallocate(2) more ENOSPC friendlyYan, Zheng-33/+32
fallocate(2) may allocate large number of file extents, so it's not good to do it in a single transaction. This patch make fallocate(2) start a new transaction for each file extents it allocates. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>
2009-12-17Btrfs: Avoid orphan inodes cleanup during committing transactionYan, Zheng-16/+17
btrfs_lookup_dentry may trigger orphan cleanup, so it's not good to call it while committing a transaction. Signed-off-by: Yan Zheng <> Signed-off-by: Chris Mason <>