Added extra/aufs2

This commit is contained in:
Kevin Mihelich 2011-02-06 11:48:25 -05:00
parent a018743715
commit f2b6b69996
4 changed files with 136 additions and 0 deletions

63
extra/aufs2/PKGBUILD Normal file
View file

@ -0,0 +1,63 @@
# $Id: PKGBUILD 107419 2011-01-24 19:05:04Z tpowa $
# Maintainer: Paul Mattal <pjmattal@elys.com>
# PlugApps: Kevin Mihelich <kevin@plugapps.com>
# - _kernver=2.6.37, without -ARCH
pkgname=aufs2
pkgver=2.6.37_20110124
pkgrel=1
#_kernver=${pkgver%_*}-ARCH
_kernver=2.6.37
pkgdesc="Another Unionfs Implementation"
arch=('i686' 'x86_64')
url="http://aufs.sourceforge.net/"
license=('GPL2')
depends=('kernel26>=2.6.37' 'kernel26<2.6.38')
makedepends=('kernel26-headers>=2.6.37' 'kernel26-headers<2.6.38')
replaces=('aufs')
install=${pkgname}.install
source=("ftp://ftp.archlinux.org/other/aufs2/${pkgname}-${pkgver}.tar.gz")
options=('!makeflags')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
#patch -Np1 -i ../aufs2-module-2.6.36.patch
sed -i 's|CONFIG_AUFS_HNOTIFY =.*|CONFIG_AUFS_HNOTIFY = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_HFSNOTIFY =.*|CONFIG_AUFS_HFSNOTIFY = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_EXPORT =.*|CONFIG_AUFS_EXPORT = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_BDEV_LOOP =.*|CONFIG_AUFS_BDEV_LOOP = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_BR_RAMFS =.*|CONFIG_AUFS_BR_RAMFS = y|' \
config.mk || return 1
sed -i 's|CONFIG_AUFS_DEBUG =.*|CONFIG_AUFS_DEBUG =|' \
config.mk || return 1
if [ "${CARCH}" = "x86_64" ]; then
inot64=" y"
else
inot64=""
fi
sed -i "s|CONFIG_AUFS_INO_T_64 =.*|CONFIG_AUFS_INO_T_64 =${inot64}|" \
config.mk
# build, sed fixes are from gentoo portage build
sed -i "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" Makefile
sed -i "s:__user::g" include/linux/aufs_type.h
make KDIR=/usr/src/linux-${_kernver}
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
install -D -m644 fs/aufs/aufs.ko \
$pkgdir/lib/modules/${_kernver}/kernel/fs/aufs/aufs.ko
# tweak the install script for the right kernel version
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
$startdir/$pkgname.install
# install include files
install -D -m 644 include/linux/aufs_type.h $pkgdir/usr/include/linux/aufs_type.h
}
md5sums=('fa64d7893490ef9c82310ebd5f730443')

View file

@ -0,0 +1,47 @@
diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c
index cd4463c..ff6b158 100644
--- a/fs/aufs/branch.c
+++ b/fs/aufs/branch.c
@@ -22,6 +22,8 @@
#include <linux/file.h>
#include <linux/statfs.h>
+#include <linux/lglock.h>
+#include <linux/percpu.h>
#include "aufs.h"
/*
@@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
goto out;
/* no need file_list_lock() since sbinfo is locked? defered? */
- list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
+ lg_global_lock(files_lglock);
+ do_file_list_for_each_entry(sb, file) {
if (special_file(file->f_dentry->d_inode->i_mode))
continue;
@@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
err = -EBUSY;
FiMustNoWaiters(file);
fi_read_unlock(file);
+ lg_global_unlock(files_lglock);
goto out_free;
}
@@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
if (p) {
a = p;
a[n++] = hf;
- } else
+ } else {
+ lg_global_unlock(files_lglock);
goto out_free;
+ }
}
- }
+ } while_file_list_for_each_entry;
+ lg_global_unlock(files_lglock);
err = 0;
if (n)

12
extra/aufs2/aufs2.install Normal file
View file

@ -0,0 +1,12 @@
post_install() {
KERNEL_VERSION=2.6.37-ARCH
depmod $KERNEL_VERSION
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}

14
extra/aufs2/create-tarball.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
AUFS2VERSION="-37"
KERNELVERSION=2.6.37
GITSNAPSHOT=20110124
# aufs2 (no -xx) for the latest -rc version.
git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git aufs2-standalone.git
cd aufs2-standalone.git
git checkout origin/aufs2.1${AUFS2VERSION}
#git checkout origin/aufs2.1
#*** apply "aufs2-base.patch" and "aufs2-standalone.patch" to your kernel source files.
cd ..
rm -rf aufs2-${KERNELVERSION}_${GITSNAPSHOT}
cp -a aufs2-standalone.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
tar -czf aufs2-${KERNELVERSION}_${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}