Add support for the ldiskfs2 fstype.
b=11981
r=adilger
r=nathan
LDD_MT_LDISKFS,
LDD_MT_SMFS,
LDD_MT_REISERFS,
+ LDD_MT_LDISKFS2,
LDD_MT_LAST
};
"ldiskfs",
"smfs",
"reiserfs",
+ "ldiskfs2",
};
return mount_type_string[mt];
}
if (IS_ERR(mnt)) {
rc = PTR_ERR(mnt);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
- CERROR("premount %s:%#lx ldiskfs failed (%d), is the ldiskfs "
- "module available?\n", lmd->lmd_dev, s_flags, rc);
- GOTO(out_free, rc);
+ /* 2.6 kernels: if ldiskfs fails, try ldiskfs2 */
+ mnt = ll_kern_mount("ldiskfs2", s_flags, lmd->lmd_dev, 0);
+ if (IS_ERR(mnt)) {
+ int rc2 = PTR_ERR(mnt);
+ CERROR("premount %s:%#lx ldiskfs failed: %d, ldiskfs2 "
+ "failed: %d. Is the ldiskfs module available?\n",
+ lmd->lmd_dev, s_flags, rc, rc2);
+ GOTO(out_free, rc);
+ }
#else
- /* If ldisk fails, try ext3 */
+ /* 2.4 kernels: if ldiskfs fails, try ext3 */
mnt = ll_kern_mount("ext3", s_flags, lmd->lmd_dev, 0);
if (IS_ERR(mnt)) {
rc = PTR_ERR(mnt);
case `uname -r` in
2.4.*) EXT=".o"; USE_QUOTA=no; FSTYPE=ext3 ;;
- *) EXT=".ko"; USE_QUOTA=yes; FSTYPE=ldiskfs ;;
+ *) EXT=".ko"; USE_QUOTA=yes; [ "$FSTYPE" ] || FSTYPE=ldiskfs ;;
esac
load_module() {
load_module lov/lov
load_module mds/mds
[ "$FSTYPE" = "ldiskfs" ] && load_module ldiskfs/ldiskfs
+ [ "$FSTYPE" = "ldiskfs2" ] && load_module ldiskfs/ldiskfs2
load_module lvfs/fsfilt_$FSTYPE
load_module ost/ost
load_module obdfilter/obdfilter
}
formatall() {
+ [ "$FSTYPE" ] && FSTYPE_OPT="--backfstype $FSTYPE"
+
stopall
# We need ldiskfs here, may as well load them all
load_modules
echo Formatting mds, osts
if $VERBOSE; then
- add mds $MDS_MKFS_OPTS --reformat $MDSDEV || exit 10
+ add mds $MDS_MKFS_OPTS $FSTYPE_OPT --reformat $MDSDEV || exit 10
else
- add mds $MDS_MKFS_OPTS --reformat $MDSDEV > /dev/null || exit 10
+ add mds $MDS_MKFS_OPTS $FSTYPE_OPT --reformat $MDSDEV > /dev/null || exit 10
fi
for num in `seq $OSTCOUNT`; do
if $VERBOSE; then
- add ost$num $OST_MKFS_OPTS --reformat `ostdevname $num` || exit 10
+ add ost$num $OST_MKFS_OPTS $FSTYPE_OPT --reformat `ostdevname $num` || exit 10
else
- add ost$num $OST_MKFS_OPTS --reformat `ostdevname $num` > /dev/null || exit 10
+ add ost$num $OST_MKFS_OPTS $FSTYPE_OPT --reformat `ostdevname $num` > /dev/null || exit 10
fi
done
}
/* used to describe the options to format the lustre disk, not persistent */
struct mkfs_opts {
struct lustre_disk_data mo_ldd; /* to be written in MOUNT_DATA_FILE */
- char mo_mount_type_string[20]; /* "ext3", "ldiskfs", ... */
char mo_device[128]; /* disk device name */
char mo_mkfsopts[128]; /* options to the backing-store mkfs */
char mo_loopdev[128]; /* in case a loop dev is needed */
}
if ((mop->mo_ldd.ldd_mount_type == LDD_MT_EXT3) ||
- (mop->mo_ldd.ldd_mount_type == LDD_MT_LDISKFS)) {
+ (mop->mo_ldd.ldd_mount_type == LDD_MT_LDISKFS) ||
+ (mop->mo_ldd.ldd_mount_type == LDD_MT_LDISKFS2)) {
__u64 device_sz = mop->mo_device_sz;
/* we really need the size */
/* These are the permanent mount options (always included) */
switch (ldd->ldd_mount_type) {
case LDD_MT_EXT3:
- case LDD_MT_LDISKFS: {
+ case LDD_MT_LDISKFS:
+ case LDD_MT_LDISKFS2: {
sprintf(always_mountopts, "errors=remount-ro");
if (IS_MDT(ldd) || IS_MGS(ldd))
strcat(always_mountopts,
if mounted with a kernel that doesn't include the CFS
patches! */
if (IS_OST(ldd) &&
- ldd->ldd_mount_type == LDD_MT_LDISKFS) {
+ (ldd->ldd_mount_type == LDD_MT_LDISKFS ||
+ ldd->ldd_mount_type == LDD_MT_LDISKFS2)) {
strcat(default_mountopts, ",extents,mballoc");
}
break;
cp -u ../mds/mds.$EXT $MDIR
cp -u ../lvfs/$FSFLT.$EXT $MDIR
[ $KVER == "26" ] && cp -u ../ldiskfs/ldiskfs.$EXT $MDIR
+[ $KVER == "26" ] && cp -u ../ldiskfs2/ldiskfs2.$EXT $MDIR
cp -u ../ost/ost.$EXT $MDIR
cp -u ../obdfilter/obdfilter.$EXT $MDIR
cp -u ../llite/lustre.$EXT $MDIR