Hi Im experiencing problems try to implement simple functions for my pet xlator QUOTA stats mops from posix module seems nonsense, also rr sched seem to ignore them. My setup is: volume posix-brick0 type storage/posix # POSIX FS translator option directory /home/export # Export this directory end-volume volume posix-brick1 type storage/posix # POSIX FS translator option directory /home/export2 # Export this directory end-volume volume posix-brick2 type storage/posix # POSIX FS translator option directory /home/export3 # Export this directory end-volume volume quota-volume type features/quota subvolumes posix-brick0 option max-size 5MB end-volume volume unify-volume type cluster/unify option namespace posix-brick2 option scheduler rr option rr.limits.min-free-disk 5 option rr.refresh-interval 2 subvolumes quota-volume posix-brick1 end-volume ############################ Quota tries to fool unify about size of posix-brick0. I got trace_stats_cbk from trace to adquire return values from stats mops. i hope things going like this (ASYNC calls): unifiy scheduler rr --> rr_*_stats( ) mops --> quota_stats( ) mops ---> posix_stats mops posix_stats --> quota_stats_cbk mops --> rr_stats_cbk mops So i hacked quota_stats_cbk as this: INFO: quota allocate on init a quota_private struct *private and store prt on this->private static int32_t quota_stats_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct xlator_stats *stats) { struct quota_private *private = NULL; private = this->private; /* Here we control space available to upper modules */ if (private->storage_size > 0) { if ( stats->total_disk_size > private->storage_size ) { gf_log (this->name, GF_LOG_WARNING, "quota_stats_cbk (Limiting storage to %d (Was Total: %d Free: %d,Used: %d ))\n", private->storage_size, stats->total_disk_size, stats->free_disk, stats->disk_usage); stats->total_disk_size = private->storage_size; } } STACK_UNWIND (frame, op_ret, op_errno, stats); return 0; } This code doesnt work!! Test: $cd /home/sinosuke/mnt $for a in $(seq 1 4); do echo "Bloque $a"; dd if=/dev/urandom of=test$a.txt bs=10 count=1; sleep 1; done Code prints: 2008-01-18 01:24:05 W [quota.c:2204:quota_stats_cbk] quota-volume: quota_stats_cbk (Limiting storage to 5242880 ( Was Total: 0 Free: 1586819072,Used: 12 )) 2008-01-18 01:24:09 W [quota.c:2204:quota_stats_cbk] quota-volume: quota_stats_cbk (Limiting storage to 5242880 ( Was Total: 0 Free: 1586819072,Used: 12 )) Why stats from posix-brick0 always show the same nonsense values?? Does really rr scheduler use them for disk space control?? Im confused Regards -- ------------------------------------------------ Clist UAH ------------------------------------------------