Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #137 from mariux64/0.30.8
0.30.8
  • Loading branch information
donald committed Oct 28, 2022
2 parents e362aee + 9b43066 commit f3d9fb8
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 55 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,6 +1,6 @@
MXQ_VERSION_MAJOR = 0
MXQ_VERSION_MINOR = 30
MXQ_VERSION_PATCH = 7
MXQ_VERSION_PATCH = 8
MXQ_VERSION_EXTRA = "beta"
MXQ_VERSIONDATE = 2022

Expand Down
42 changes: 0 additions & 42 deletions helper/create_job_tmpdir

This file was deleted.

52 changes: 40 additions & 12 deletions helper/tmpdir-setup
Expand Up @@ -20,6 +20,8 @@ cmd_create() {

filename=$tmpdir/$MXQ_JOBID.tmp
mountpoint=$mntdir/$MXQ_JOBID
dmname=mxq.$MXQ_JOBID
dmdevice=/dev/mapper/$dmname

umask 006
mkdir -p $tmpdir
Expand All @@ -29,15 +31,19 @@ cmd_create() {

if fallocate -l ${MXQ_SIZE}G $filename; then
if loopdevice=$(losetup --find --show $filename); then
if mkfs.ext4 \
-q \
-m 0 \
-E nodiscard,mmp_update_interval=300,lazy_journal_init=1,root_owner=$MXQ_UID:0 \
-O '64bit,ext_attr,filetype,^has_journal,huge_file,inline_data,^mmp,^quota,sparse_super2' \
$loopdevice \
&& mkdir -p $mountpoint && mount -Odata=writeback,barrier=0 $loopdevice $mountpoint; then
rmdir $mountpoint/lost+found
status=0
if dmsetup create $dmname --table "0 $((MXQ_SIZE*1024*1024*2)) linear $loopdevice 0"; then
if mkfs.ext4 \
-q \
-m 0 \
-E nodiscard,mmp_update_interval=300,lazy_journal_init=1,root_owner=$MXQ_UID:0 \
-O '64bit,ext_attr,filetype,^has_journal,huge_file,inline_data,^mmp,^quota,sparse_super2' \
$dmdevice \
&& mkdir -p $mountpoint && mount -Odata=writeback,barrier=0 $dmdevice $mountpoint; then
rmdir $mountpoint/lost+found
status=0
else
dmsetup remove --force --deferred $dmname
fi
fi
losetup -d $loopdevice
fi
Expand All @@ -52,12 +58,34 @@ cmd_cleanup() {
(( $# == 1 )) || usage
MXQ_JOBID=$1

(
shopt -s dotglob;
# Support rolling upgrade: Use old code if loop device is directly mounted without a dm device in between.
#
if [[ $(findmnt --output SOURCE --noheadings /dev/shm/mxqd/mnt/job/$MXQ_JOBID) =~ ^/dev/loop ]]; then
shopt -s dotglob
rm -rf /dev/shm/mxqd/mnt/job/$MXQ_JOBID/*
umount /dev/shm/mxqd/mnt/job/$MXQ_JOBID
rmdir /dev/shm/mxqd/mnt/job/$MXQ_JOBID
) &
exit
fi

mountpoint=$mntdir/$MXQ_JOBID
dmname=mxq.$MXQ_JOBID
dmdevice=/dev/mapper/$dmname
minor=$(( 0x$(stat -c%T $dmdevice) ))
sectors=$(cat /sys/block/dm-$minor/size)

# fs/ext4/ext4.h: #define EXT4_IOC_SHUTDOWN _IOR ('X', 125, __u32)
# (_IOC_READ << 30) + (sizeof(_u32) << 16) + ( 'X' << 8 ) + 125
# ( 2 << 30 ) + ( 4 << 16 ) + ( 88 << 8 ) + 125 = 2147768445
# fs/ext4/ext4.h: #define EXT4_GOING_FLAGS_NOLOGFLUSH 0x2 /* don't flush log nor data */

/usr/local/system/perl/bin/perl -e "open F, '<', '$mountpoint/.' ; \$d=pack('L', 2) ; ioctl (F, 2147768445, \$d)"

dmsetup reload $dmname --table "0 $sectors zero"
dmsetup resume $dmname --noflush
umount --lazy $mountpoint
dmsetup remove $dmname
rmdir $mountpoint
}

(( $# > 0 )) || usage
Expand Down

0 comments on commit f3d9fb8

Please sign in to comment.