This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: df reports negative values on Network Shares


>On Tue, Nov 18, 2003 at 07:53:19AM +0100, Demmer, Thomas wrote:
>> $ df
>> Filesystem           1k-blocks      Used Available Use% Mounted on
>> m:                      307200 -73786976294741950464      7308 101% /m
>> 
>> All the drives with the -64Z (zillion?) are on the same server subsystem,
n:
>> is on a different server.
>> The explorer show reasonable values under Properties, e.g. 158MB used,
341MB
>> free, and 500MB Capacity.
>> The 500MB for do not represent a physical value, but most likely a quota
>> limit. 
>> The values for n: are consistent with what the explorer claims.
>> 
>> Any hints where to look further into this?
>
>Perhaps an strace would show something of interest.  I guess you will
>have to debug that situation further since not really a lot of people
>have a chance to reproduce it.
>
>Corinna

The following test case illustrates the issue

#include <stdio.h>
#include <stdlib.h>
#include <sys/statfs.h>

void dump_statfs(struct statfs *sf){
  printf("f_type   : %8lx\n",sf->f_type);
  printf("f_bsize  : %8ld (Opt Xfer blk size)\n",sf->f_bsize);
  printf("f_blocks : %8ld (total # of data blocks)\n",sf->f_blocks);
  printf("f_bfree  : %8ld (Free blocks)\n",sf->f_bfree);
  printf("f_bavail : %8ld (Free blocks for user)\n",sf->f_bavail);
  printf("f_files  : %8ld (total file nodes)\n",sf->f_files);
  printf("f_ffree  : %8ld (total file nodes free)\n",sf->f_ffree);
  printf("f_fsid   : %8lx\n",sf->f_fsid);
  printf("f_namelen: %8ld\n",sf->f_namelen);
}
int 
main(int argc, char **argv){
  struct statfs fs;
  puts("Dumping n:");
  statfs("n:/",&fs);
  dump_statfs(&fs);

  puts("Dumping m:");
  statfs("m:/",&fs);
  dump_statfs(&fs);
  return 0;
}

n: is a drive mapping where I do not hava a quota, whereas on m:
there is a quota. Output of the program:

$ ./dft
Dumping n:
f_type   :    700ff
f_bsize  :     4096 (Opt Xfer blk size)
f_blocks : 15673319 (total # of data blocks)
f_bfree  :  2179299 (Free blocks)
f_bavail :  2179299 (Free blocks for user)
f_files  :       -1 (total file nodes)
f_ffree  :       -1 (total file nodes free)
f_fsid   : 18327056
f_namelen:      255
Dumping m:
f_type   :    700ff
f_bsize  :     4096 (Opt Xfer blk size)
f_blocks :    76800 (total # of data blocks)
f_bfree  : 24078118 (Free blocks)
f_bavail :     1615 (Free blocks for user)
f_files  :       -1 (total file nodes)
f_ffree  :       -1 (total file nodes free)
f_fsid   : 10c12539
f_namelen:      255


Relevant output from df:
m:                      307200 -73786976294742204416      6460 101% /m
n:                    62693276  53976080   8717196  87% /cygdrive/n

Apparently df gets confused when the number of data blocks is smaller than
the number of free blocks, and I am now, too. I wonder if df does the right
thing
and this is an error of windows. FWIW, this is XP Pro 2002, SP1.

Can anybody with a UNIX system and quotas check what the program prints
out there?

Best regards / Mit freundlichen Grüssen,

Thomas Demmer
Kraft Foods R&D Inc.
Tel.: +49 (0)89 62738-6302
Fax: +49 (0)89 62738-86302
mailto:tdemmer@krafteurope.com
Thought of the day
Admiration, n.:
        Our polite recognition of another's resemblance to ourselves.
                -- Ambrose Bierce, "The Devil's Dictionary"


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]