On Mon, Mar 26, 2012 at 6:18 PM, Bob Friesenhahn
<bfrie...@simple.dallas.tx.us> wrote:
> On Mon, 26 Mar 2012, Andrew Gabriel wrote:
>
>> I just played and knocked this up (note the stunning lack of comments,
>> missing optarg processing, etc)...
>> Give it a list of files to check...
>
>
> This is a cool program, but programmers were asking (and answering) this
> same question 20+ years ago before there was anything like SEEK_HOLE.
>
> If file space usage is less than file directory size then it must contain a
> hole.  Even for compressed files, I am pretty sure that Solaris reports the
> uncompressed space usage.

That's not the case.

# zfs create -o compression=on rpool/junk
# perl -e 'print "foo" x 100000'> /rpool/junk/foo
# ls -ld /rpool/junk/foo
-rw-r--r--   1 root     root      300000 Mar 26 18:25 /rpool/junk/foo
# du -h /rpool/junk/foo
  16K   /rpool/junk/foo
# truss -t stat -v stat du  /rpool/junk/foo
...
lstat64("foo", 0x08047C40)                      = 0
    d=0x02B90028 i=8     m=0100644 l=1  u=0     g=0     sz=300000
        at = Mar 26 18:25:25 CDT 2012  [ 1332804325.742827733 ]
        mt = Mar 26 18:25:25 CDT 2012  [ 1332804325.889143166 ]
        ct = Mar 26 18:25:25 CDT 2012  [ 1332804325.889143166 ]
    bsz=131072 blks=32    fs=zfs

Notice that it says it has 32 512 byte blocks.

The mechanism you suggest does work for every other file system that
I've tried it on.

-- 
Mike Gerdts
http://mgerdts.blogspot.com/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to