- fix race in target_handle_connect (2898)
- mds_reint_create() should take same inode create lock (2926)
- correct journal credits calculated for CANCEL_UNLINK_LOG (2931)
+ - allow MDS with the same name as client node (2939)
- hold dentry reference for closed log files for unlink (2325)
- reserve space for all logs during transactions (2059)
- don't evict page beyond end of stripe extent (2925)
SERIES=hp-pnnl-2.4.20
VERSION=2.4.20
EXTRA_VERSION=hp_pnnl_lustre
+RHBUILD=0
BASE_ARCHS="ia64"
BIGMEM_ARCHS=""
SERIES=rh-2.4.20
VERSION=2.4.20
EXTRA_VERSION=28.9_lustre
+RHBUILD=1
BASE_ARCHS="i586"
BIGMEM_ARCHS=""
void *handle;
if (current->journal_info) {
- CDEBUG(D_INODE, "increasing refcount on %p\n", current->journal_info);
+ CDEBUG(D_INODE, "increasing refcount on %p\n",
+ current->journal_info);
goto journal_start;
}
nblocks += 1;
break;
case FSFILT_OP_CANCEL_UNLINK:
+ /* blocks for log header bitmap update OR
+ * blocks for catalog header bitmap update + unlink of logs */
nblocks = (LLOG_CHUNK_SIZE >> inode->i_blkbits) +
EXT3_DELETE_TRANS_BLOCKS * logs;
break;
med = &export->exp_mds_data;
target_destroy_export(export);
+ if (obd_uuid_equals(&export->exp_client_uuid, &obd->obd_uuid))
+ GOTO(out, 0);
+
push_ctxt(&saved, &obd->obd_ctxt, NULL);
/* Close any open files (which may also cause orphan unlinking). */
spin_lock(&med->med_open_lock);
spin_unlock(&med->med_open_lock);
pop_ctxt(&saved, &obd->obd_ctxt, NULL);
+out:
mds_client_free(export, !(export->exp_flags & OBD_OPT_FAILOVER));
RETURN(rc);
-e "s/@JENSEN_ARCHS@/$BOOT_ARCHS/g" \
-e "s/@SMP_ARCHS@/$SMP_ARCHS/g" \
-e "s/@UP_ARCHS@/$UP_ARCHS/g" \
+ -e "s/@RHBUILD@/$RHBUILD/g" \
< $TOPDIR/lustre/scripts/lustre-kernel-2.4.spec.in \
> lustre-kernel-2.4.spec
[ -d SRPMS ] || mkdir SRPMS
done
rpmbuild $targets -bb lustre-kernel-2.4.spec \
- --define "_topdir $TOPDIR" \
+ --define "_topdir $TOPDIR" || \
fatal 1 "Error building rpms for $arch."
(( $DO_SRC )) && rpmbuild -bs lustre-kernel-2.4.spec \
- --define "_topdir $TOPDIR" \
+ --define "_topdir $TOPDIR" || \
fatal 1 "Error building .src.rpm."
}
else
EXTRA_VERSION="${EXTRA_VERSION}_lustre.$(get_lustre_version)"
fi
- EXTRA_VERSION=${EXTRA_VERSION//-/_}
}
tarflags()
%define nptlarchs %{all_x86}
#define nptlarchs noarch
+%define rhbuild @RHBUILD@
# disable build root strip policy
%define __spec_install_post /usr/lib/rpm/brp-compress || :
rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/savedheaders
+%if %{rhbuild}
# fix up the tmp_include_depends file wrt the buildroot
perl -p -i -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/tmp_include_depends
+%endif
+
popd >/dev/null
%endif
/usr/src/linux-%{KVERREL}/arch/sparc64
%endif
/usr/src/linux-%{KVERREL}/drivers
+%if %{rhbuild}
/usr/src/linux-%{KVERREL}/crypto
+%endif
/usr/src/linux-%{KVERREL}/fs
/usr/src/linux-%{KVERREL}/init
/usr/src/linux-%{KVERREL}/ipc
%{?ibcs_1:/usr/src/linux-%{KVERREL}/include/abi}
%endif
/usr/src/linux-%{KVERREL}/include/linux
+%if %{rhbuild}
/usr/src/linux-%{KVERREL}/include/rxrpc
+%endif
/usr/src/linux-%{KVERREL}/include/net
/usr/src/linux-%{KVERREL}/include/pcmcia
/usr/src/linux-%{KVERREL}/include/scsi
/usr/src/linux-%{KVERREL}/include/video
+%if %{rhbuild}
/usr/src/linux-%{KVERREL}/tmp_include_depends
+%endif
%dir /usr/src/linux-%{KVERREL}/include
%dir /usr/src/linux-%{KVERREL}/arch
%ifarch alpha sparc
run_test 9 "test --ptldebug and --subsystem for lmc and lconf"
test_10() {
+ echo "generate configuration with the same name for node and mds"
OLDXMLCONFIG=$XMLCONFIG
XMLCONFIG="broken.xml"
[ -f "$XMLCONFIG" ] && rm -f $XMLCONFIG
- SAMENAME="mds1"
- do_lmc --add node --node $SAMENAME
- do_lmc --add net --node $SAMENAME --nid $SAMENAME --nettype tcp
- do_lmc --add mds --node $SAMENAME --mds $SAMENAME --nid $SAMENAME \
- --fstype ext3 --dev /dev/mds1 || return $?
- do_lmc --add lov --lov lov1 --mds $SAMENAME --stripe_sz 65536 \
- --stripe_cnt 1 --stripe_pattern 0 || return $?
+ facet="mds"
+ rm -f ${facet}active
+ add_facet $facet
+ echo "the name for node and mds is the same"
+ do_lmc --add mds --node ${facet}_facet --mds ${facet}_facet \
+ --dev $MDSDEV --size $MDSSIZE || return $?
+ do_lmc --add lov --mds ${facet}_facet --lov lov1 --stripe_sz \
+ $STRIPE_BYTES --stripe_cnt $STRIPES_PER_OBJ \
+ --stripe_pattern 0 || return $?
+ add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
+ facet="client"
+ add_facet $facet --lustre_upcall $UPCALL
+ do_lmc --add mtpt --node ${facet}_facet --mds mds_facet \
+ --lov lov1 --path $MOUNT
+
+ echo "mount lustre"
+ start_ost
+ start_mds
+ mount_client $MOUNT
+ check_mount || return 41
+ cleanup || return $?
+
echo "Success!"
XMLCONFIG=$OLDXMLCONFIG
}
-run_test 10 "use lmc with the same name for node and mds"
+run_test 10 "mount lustre with the same name for node and mds"
test_11() {
OLDXMLCONFIG=$XMLCONFIG
}
run_test 16 "verify that lustre will correct the mode of OBJECTS/LOGS/PENDING"
+test_17() {
+ TMPMTPT="/mnt/conf17"
+
+ if [ ! -f "$MDSDEV" ]; then
+ echo "no $MDSDEV existing, so mount Lustre to create one"
+ start_ost
+ start_mds
+ mount_client $MOUNT
+ check_mount || return 41
+ cleanup || return $?
+ fi
+
+ echo "Remove mds config log"
+ [ -d $TMPMTPT ] || mkdir -p $TMPMTPT
+ mount -o loop -t ext3 $MDSDEV $TMPMTPT || return $?
+ rm -f $TMPMTPT/LOGS/mds_svc || return $?
+ umount $TMPMTPT || return $?
+
+ start_ost
+ start mds $MDSLCONFARGS && return 42
+ cleanup || return $?
+}
+run_test 17 "Verify failed mds_postsetup won't fail assertion (2936)"
+
+
equals_msg "Done"
run_test 10a "write of file with sub-page size on multiple mounts "
test_10b() {
- set -vx
yes "R" | dd of=$DIR1/f10b bs=3k count=1 || error "dd $DIR1"
truncate $DIR1/f10b 4096 || error "truncate 4096"
# add an lovconfig entry to the active mdsdev profile
lovconfig_name = new_name('LVCFG_' + name)
lovconfig_uuid = new_uuid(lovconfig_name)
- mds = findByName(lustre, mds_name)
+ mds = findByName(lustre, mds_name, "mds")
mds.appendChild(gen.ref("lovconfig", lovconfig_uuid))
lovconfig = gen.lovconfig(lovconfig_name, lovconfig_uuid, uuid)
lustre.appendChild(lovconfig)