• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: PBHGetVInfoSync result changed in Snow Leopard?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PBHGetVInfoSync result changed in Snow Leopard?


  • Subject: Re: PBHGetVInfoSync result changed in Snow Leopard?
  • From: Jim Luther <email@hidden>
  • Date: Thu, 10 Sep 2009 11:57:29 -0700

Timo,

The values returned in ioVAlBlkSiz and ioVNmAlBlks are derived from f_bsize and f_blocks returned by statfs(2). Derived because ioVAlBlkSiz is (UInt32) and ioVNmAlBlks is (UInt16) while f_bsize is uint32_t and f_blocks is uint64_t, so we try to come up with munged values that work up on up to 2 GB volumes (larger volumes get capped values).

Could you give me a little more information about the volume you are seeing this on and your code?

- What filesystem type is the volume you're seeing this with? Use the mount(8) command with no arguments to see the list of filesystems. The type will be hfs, nfs, msdos, etc.

- What does "df <path-to-volume>" show you for the volume?

- What architecture is your code (ppc or i386)?

Thanks.
Jim

On Sep 10, 2009, at 9:42 AM, Timo Naroska wrote:

Hi All,

we encountered a problem with Carbon based applications when accessing our custom File System on Snow Leopard.
The applications in question use the (deprecated) PBHGetVInfoSync() call to retrieve a kind of "optimal I/O size".


The specific value returned by PBHGetVInfoSync() is in volumeParam.ioVAlBlkSiz. It appears that on Leopard there is
some random non-zero value returned. At least I was not able to determine how the returned value relates to any
information that my kernel driver returns either in vfs_getattr or in the vfsstatfs structure.


However on Snow Leopard the call always returns zero in ioVAlBlkSiz which results in infinite loops in the applications
as they are using the value as increment in read/write file loops.


I see that PBHGetVInfoSync() is long deprecated and that the apps not checking for zero values is bad style, but the question
remains which volume attributes in the unix kernel world are used to determine ioVAlBlkSiz and whether the change in Snow
Leopard is as designed or a bug?


Any help appreciated,
Timo

_______________________________________________ Do not post admin requests to the list. They will be ignored. Filesystem-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: PBHGetVInfoSync result changed in Snow Leopard?
      • From: Timo Naroska <email@hidden>
References: 
 >PBHGetVInfoSync result changed in Snow Leopard? (From: Timo Naroska <email@hidden>)

  • Prev by Date: PBHGetVInfoSync result changed in Snow Leopard?
  • Next by Date: Re: PBHGetVInfoSync result changed in Snow Leopard?
  • Previous by thread: PBHGetVInfoSync result changed in Snow Leopard?
  • Next by thread: Re: PBHGetVInfoSync result changed in Snow Leopard?
  • Index(es):
    • Date
    • Thread