All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Elder <aelder@sgi.com>
To: Arkadiusz Miskiewicz <arekm@maven.pl>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH VER 6] xfsprogs: projid32bit handling
Date: Fri, 01 Oct 2010 08:57:40 -0500	[thread overview]
Message-ID: <1285941460.5119.463.camel@doink> (raw)
In-Reply-To: <201009260814.00111.arekm@maven.pl>

On Sun, 2010-09-26 at 08:13 +0200, Arkadiusz Miskiewicz wrote:
> On Sunday 26 of September 2010, Arkadiusz Miśkiewicz wrote:
> > Add projid32bit handling to userspace. mkfs.xfs is able to enable this
> > feature for new filesystems. xfs_db knows what projid_lo/hi are.
> 
> ... and xfs_admin if someone needs it anyway.

Do you intend for this to be included or not?

I also have a question, below.

> 
> News:
> - use 0x80 instead of 0x20 for PROJID32BIT superblock bit (as 0x20
>   and 0x40 are reserved)
> 
> diff --git a/db/xfs_admin.sh b/db/xfs_admin.sh
> index a7a3fdb..ec8424d 100755
> --- a/db/xfs_admin.sh
> +++ b/db/xfs_admin.sh
> @@ -6,9 +6,43 @@
>  status=0
>  DB_OPTS=""
>  REPAIR_OPTS=""
> -USAGE="Usage: xfs_admin [-efjluV] [-c 0|1] [-L label] [-U uuid] device"
> +USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device"

Here you are describing a "p" flag, but below you are
actually adding a "3" flag (and documented as such in
the man page).  I prefer "p" (but maybe there's a reason
you used "3" below).  Which is it?
 
> -while getopts "efjluc:L:U:V" c
> +set_features2_bit() {
> +	device="$1"
> +	bit="$2"
> +
> +	if [ -z "$device" ]; then
> +		echo "$0: device name is missing" >&2
> +		return 1
> +	fi
> +
> +	if [ -z "$bit" ]; then
> +		echo "$0: bits to set are missing" >&2
> +		return 1
> +	fi
> +
> +	# read current bits
> +	features2=$(xfs_db -p xfs_admin -x -r -c 'sb' -c 'print features2' "$device" | awk ' { print $3 } ')
> +	if [ -z "$features2" ]; then
> +		echo "$0: can't read features2 from superblock!" >&2
> +		return 1
> +	fi
> +	bad_features2=$(xfs_db -p xfs_admin -x -r -c 'sb' -c 'print bad_features2' "$device" | awk ' { print $3 } ')
> +	if [ -z "$bad_features2" ]; then
> +		echo "$0: can't read bad_features2 from superblock!" >&2
> +		return 1
> +	fi
> +
> +	# set new bits
> +	features2=$((features2 | bit))
> +	bad_features2=$((bad_features2 | bit))
> +	xfs_db -p xfs_admin -x -c 'sb' -c "write features2 $features2" "$device" && \
> +		xfs_db -p xfs_admin -x -c 'sb' -c "write bad_features2 $bad_features2" "$device"
> +	return $?
> +}
> +
> +while getopts "efjlu3c:L:U:V"
>  do
>  	case $c in
>  	c)	REPAIR_OPTS=$REPAIR_OPTS" -c lazycount="$OPTARG;;
> @@ -17,6 +51,7 @@ do
>  	j)	DB_OPTS=$DB_OPTS" -c 'version log2'";;
>  	l)	DB_OPTS=$DB_OPTS" -r -c label";;
>  	L)	DB_OPTS=$DB_OPTS" -c 'label "$OPTARG"'";;
> +	3)	FEATURES_BIT="0x80";;

>  	u)	DB_OPTS=$DB_OPTS" -r -c uuid";;
>  	U)	DB_OPTS=$DB_OPTS" -c 'uuid "$OPTARG"'";;
>  	V)	xfs_db -p xfs_admin -V
> @@ -31,7 +66,12 @@ done
>  set -- extra $@
>  shift $OPTIND
>  case $# in
> -	1)	if [ -n "$DB_OPTS" ]
> +	1)	if [ -n "$FEATURES_BIT" ]
> +		then
> +			set_features2_bit "$1" "$FEATURES_BIT"
> +			status=$?
> +		fi
> +		if [ -n "$DB_OPTS" ]
>  		then
>  			eval xfs_db -x -p xfs_admin $DB_OPTS $1
>  			status=$?
> diff --git a/man/man8/xfs_admin.8 b/man/man8/xfs_admin.8
> index 8e3155b..6b727f3 100644
> --- a/man/man8/xfs_admin.8
> +++ b/man/man8/xfs_admin.8
> @@ -4,7 +4,7 @@ xfs_admin \- change parameters of an XFS filesystem
>  .SH SYNOPSIS
>  .B xfs_admin
>  [
> -.B \-eflu
> +.B \-eflu3
>  ] [
>  .BR "\-c 0" | 1
>  ] [
> @@ -55,6 +55,9 @@ Print the current filesystem label.
>  .B \-u
>  Print the current filesystem UUID (Universally Unique IDentifier).
>  .TP
> +.B \-3
> +Enable 32bit project identifier support (PROJID32BIT feature).
> +.TP
>  .BR "\-c 0" | 1
>  Enable (1) or disable (0) lazy-counters in the filesystem.
>  This operation may take quite a bit of time on large filesystems as the
> 
> 



_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2010-10-01 13:57 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-26  6:10 [PATCH VER 6] Extend project quotas to support 32bit project identifiers Arkadiusz Miśkiewicz
2010-09-26  6:10 ` [PATCH VER 6] xfsprogs: projid32bit handling Arkadiusz Miśkiewicz
2010-09-26  6:10   ` [PATCH VER 6] xfstests: Quota project id setting overflow Arkadiusz Miśkiewicz
2010-10-01 13:57     ` Alex Elder
2010-09-26  6:13   ` [PATCH VER 6] xfsprogs: projid32bit handling Arkadiusz Miskiewicz
2010-10-01 13:57     ` Alex Elder [this message]
2010-10-01 13:57   ` Alex Elder
2010-09-28  1:43 ` [PATCH VER 6] Extend project quotas to support 32bit project identifiers Christoph Hellwig
2010-10-01 13:57 ` Alex Elder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1285941460.5119.463.camel@doink \
    --to=aelder@sgi.com \
    --cc=arekm@maven.pl \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.