don't break on new chattr which doesn't allow block/char devices and symlinks
authorErez Zadok <ezk@cs.sunysb.edu>
Wed, 10 Jun 2009 04:24:24 +0000 (00:24 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Wed, 10 Jun 2009 04:24:24 +0000 (00:24 -0400)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
scaffold
t-mknod.sh
t-symlink.sh
t-unlink-whiteout.sh

index d2cfad7ba97d19c606f0d233c923352160f30ae5..b592f624edaf25775f473a01cc660254bc087311 100644 (file)
--- a/scaffold
+++ b/scaffold
@@ -37,6 +37,12 @@ function havechattr {
        return 0
 }
 
+# remove non regular files before trying to chattr (new version of chatter
+# fails on symlinks and char/block devices.
+function clean_hierarchy {
+    egrep "^[bcl] " | cut -d' ' -f2 | xargs /bin/rm -f
+}
+
 function create_hierarchy {
 
        havechattr $LOWER_DIR0 && chattr -R -i $LOWER_DIR0
@@ -135,7 +141,8 @@ function create_hierarchy {
                        exit $?
                fi
 
-                if [ ! -z "$IMMUTABLE" ] ; then
+               # XXX: test if $NAME's branch has chattr support
+                if test -n "$IMMUTABLE" && havechattr $LOWER_DIR0 ; then
                        chattr +i $NAME || exit $?
                fi
         done
index ce4d1bd779e58b8211afa257f1f1a9c4ce9bcd39..2ef490eb6a1185f8fb552ce2973fed4e30c6dba5 100755 (executable)
@@ -116,6 +116,7 @@ echo -n "[ro] "
 }
 
 test_rw
+afterfiles_rw | clean_hierarchy
 test_ro
 
 complete_test
index 853cd605cbccee42e5da3d7b0d6e25be879a18e2..a8ec699168c5759c9129669422ead4f72cb3fa73 100755 (executable)
@@ -123,6 +123,7 @@ echo -n "[ro] "
 }
 
 test_rw
+afterfiles_rw | clean_hierarchy
 test_ro
 
 complete_test
index 3011f94f8185adb0ebb644b1c05c38b8ab0020d7..d5856b83c33f524af3b99232c9546744cac21979 100755 (executable)
@@ -348,9 +348,12 @@ echo -n "[rw createback 2] "
 }
 
 test1
+afterfiles_ro | clean_hierarchy
 test2
+afterfiles_createback_ro | clean_hierarchy
 test3
 test4
+afterfiles_createback_ro | clean_hierarchy
 test5
 test6
 test7