I am trying to run the Code:
#include <stdio.h>
#include <unistd.h>
#include <lustre/liblustreapi.h>
#include <sys/types.h>
#include <pwd.h>
#include <string.h>
#include <errno.h>

int main(int argc, char *argv[])
{
    struct if_quotactl qctl;
    char szpath[FILENAME_MAX];
    struct passwd *pw;
    uid_t uid;
    gid_t gid;
    int rc;

    pw = getpwuid(geteuid());

    if (!pw) {
        fprintf(stderr, "%s: getpwuid on geteuid failed!\n", argv[0]);
        return -1;
    }
    uid = pw->pw_uid;
    gid = pw->pw_gid;
    sprintf(szpath, "/n/circelfs");
    memset(&qctl, 0, sizeof(qctl));
    qctl.qc_cmd = LUSTRE_Q_GETQUOTA;
    qctl.qc_id = gid;
    qctl.qc_type = UGQUOTA;

    rc = llapi_quotactl(szpath, &qctl);
    if (rc) {
        fprintf(stderr, "%s: llapi_quotactl %s: %s\n",
                argv[0], szpath, strerror(errno));
        return rc;
    }
    struct obd_dqblk *dqb = &qctl.qc_dqblk;
    printf("Quota for %s on %s: %ld\n", pw->pw_name, szpath,
            dqb->dqb_bhardlimit*QUOTABLOCK_SIZE);
    return 0;
}

Compiled using the Makefile:
CC=gcc
CFLAGS=-g 
LIBS=-llustreapi -lm
RM=/bin/rm

EXECS = rquota
OBJS = rquota.o 

all: $(EXECS)

$(EXECS): $(OBJS) Makefile
        $(CC) $(CFLAGS) -o $(EXECS) $(OBJS) $(LIBS)

$(OBJS): Makefile

.c.o:
        $(CC) $(CFLAGS) -o $*.o -c $*.c
clean:
        $(RM) -f $(EXECS) $(OBJS)


The resulting executable is run as a regular user on a client.

Doing so however, consistently crashes the MDS server and the client. We are
running the current version of Lustre 1.6.5.1

Any idea what could be going wrong here?

Thanks.

Suvendra.

_______________________________________________
Lustre-discuss mailing list
[email protected]
http://lists.lustre.org/mailman/listinfo/lustre-discuss

Reply via email to