1. 06 1月, 2009 1 次提交
  2. 20 11月, 2008 2 次提交
  3. 26 9月, 2008 1 次提交
  4. 25 9月, 2008 4 次提交
    • C
      Btrfs: Add a write ahead tree log to optimize synchronous operations · e02119d5
      Chris Mason 提交于
      File syncs and directory syncs are optimized by copying their
      items into a special (copy-on-write) log tree.  There is one log tree per
      subvolume and the btrfs super block points to a tree of log tree roots.
      
      After a crash, items are copied out of the log tree and back into the
      subvolume.  See tree-log.c for all the details.
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      e02119d5
    • B
      NFS support for btrfs - v3 · be6e8dc0
      Balaji Rao 提交于
      Date: Mon, 21 Jul 2008 02:01:56 +0530
      Here's an implementation of NFS support for btrfs. It relies on the
      fixes which are going in to 2.6.28 for the NFS readdir/lookup deadlock.
      
      This uses the btrfs_iget helper introduced previously.
      
      [dwmw2: Tidy up a little, switch to d_obtain_alias() w/compat routine,
      	change fh_type,	store parent's root object ID where needed,
      	fix some get_parent() and fs_to_dentry() bugs]
      Signed-off-by: NBalaji Rao <balajirrao@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      be6e8dc0
    • D
      Btrfs: Change TestSetPageLocked() to trylock_page() · 2db04966
      David Woodhouse 提交于
      Add backwards compatibility in compat.h
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      ---
       compat.h    |    3 +++
       extent_io.c |    3 ++-
       2 files changed, 5 insertions(+), 1 deletions(-)
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      2db04966
    • J
      Btrfs: Add workaround for AppArmor changing remove_suid() · 12fa8ec6
      Jeff Mahoney 提交于
      In openSUSE 10.3, AppArmor modifies remove_suid to take a struct path
      rather than just a dentry. This patch tests that the kernel is openSUSE
      10.3 or newer and adjusts the call accordingly.
      
      Debian/Ubuntu with AppArmor applied will also need a similar patch.
      Maintainers of btrfs under those distributions should build on this
      patch or, alternatively, alter their package descriptions to add
      -DREMOVE_SUID_PATH to the compiler command line.
      Signed-off-by: NJeff Mahoney <jeffm@suse.com>
      - --- /dev/null	1970-01-01 00:00:00.000000000 +0000
      +++ b/compat.h	2008-02-06 16:46:13.000000000 -0500
      @@ -0,0 +1,15 @@
      +#ifndef _COMPAT_H_
      +#define _COMPAT_H_
      +
      +
      +/*
      + * Even if AppArmor isn't enabled, it still has different prototypes.
      + * Add more distro/version pairs here to declare which has AppArmor applied.
      + */
      +#if defined(CONFIG_SUSE_KERNEL)
      +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
      +# define REMOVE_SUID_PATH 1
      +# endif
      +#endif
      +
      +#endif /* _COMPAT_H_ */
      - --- a/file.c	2008-02-06 11:37:39.000000000 -0500
      +++ b/file.c	2008-02-06 16:46:23.000000000 -0500
      @@ -37,6 +37,7 @@
       #include "ordered-data.h"
       #include "ioctl.h"
       #include "print-tree.h"
      +#include "compat.h"
      
       static int btrfs_copy_from_user(loff_t pos, int num_pages, int write_bytes,
      @@ -790,7 +791,11 @@ static ssize_t btrfs_file_write(struct f
       		goto out_nolock;
       	if (count == 0)
       		goto out_nolock;
      +#ifdef REMOVE_SUID_PATH
      +	err = remove_suid(&file->f_path);
      +#else
       	err = remove_suid(fdentry(file));
      +#endif
       	if (err)
       		goto out_nolock;
       	file_update_time(file);
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      12fa8ec6