* --umka
*/
if (((de->d_inode->i_mode & S_ISUID) && S_ISDIR(de->d_inode->i_mode)) ||
- !(flags & LOOKUP_CONTINUE || (orig_it & (IT_CHDIR | IT_OPEN)))) {
+ !(flags & LOOKUP_CONTINUE || (orig_it & (IT_CHDIR | IT_OPEN | IT_GETATTR)))) {
/* special "." and ".." has to be always revalidated */
if (rc && !ll_special_name(de) && nd != NULL && !(nd->flags & LOOKUP_LAST)) {
/* do not wait for helper complete here. */
rc = call_usermodehelper(argv[0], argv, NULL, 0);
if (rc) {
- CERROR("failed to call GNS upcall %s, err = %d\n",
- sbi->ll_gns_upcall, rc);
- GOTO(cleanup, rc);
+ CWARN("failed to call GNS upcall %s, err = %d, "
+ "checking for mount anyway\n", sbi->ll_gns_upcall, rc);
}
/*
if (nd &&
dentry->d_inode != NULL && dentry->d_inode->i_mode & S_ISUID &&
S_ISDIR(dentry->d_inode->i_mode) &&
- ((flags & LOOKUP_CONTINUE) || (orig_it & (IT_CHDIR | IT_OPEN))))
+ ((flags & LOOKUP_CONTINUE) || (orig_it & (IT_CHDIR | IT_OPEN | IT_GETATTR))))
{
rc = ll_gns_mount_object(dentry, nd->mnt);
if (rc == -ERESTARTSYS) {
echo "$UPCALL_PATH" > /proc/fs/lustre/llite/fs0/gns_upcall || return $?
echo "upcall: $(cat /proc/fs/lustre/llite/fs0/gns_upcall)"
+# local OLD_PWD=$(pwd)
case "$MODE" in
GENERIC)
echo -n "mount on open $OBJECT1/test_file1 (generic): "
echo -n "test data" > $OBJECT1/test_file1 >/dev/null 2>&1 || return $?
+# cd $OBJECT1 || return $?
;;
CONCUR1)
local i=1
echo "invalid testing mode $MODE"
return 1
esac
+
+# cd $OLD_PWD
check_mnt $OBJECT1 || {
echo "fail"