Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Apr 2011 12:35:34 -0700
From:      mdf@FreeBSD.org
To:        FreeBSD Arch <freebsd-arch@freebsd.org>
Subject:   posix_fallocate(2)
Message-ID:  <BANLkTimYzJ11w9X1OHShEn2wi6gjHx=YjA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--000e0cd56c5a6936b704a0e607a2
Content-Type: text/plain; charset=ISO-8859-1

For work we need a functionality in our filesystem that is pretty much
like posix_fallocate(2), so we're using the name and I've added a
default VOP_ALLOCATE definition that does the right, but dumb, thing.

The most recent mention of this function in FreeBSD was another thread
lamenting it's failure to exist:
http://lists.freebsd.org/pipermail/freebsd-ports/2010-February/059268.html

The attached files are the core of the kernel implementation of the
syscall and a default VOP for any filesystem not supporting
VOP_ALLOCATE, which allows the syscall to work as expected but in a
non-performant manner.  I didn't see this syscall in NetBSD or
OpenBSD, so I plan to add it to the end of our syscall table.

What I wanted to check with -arch about was:

1) is there still a desire for this syscall?
2) is this naive implementation useful enough to serve as a default
for all filesystems until someone with more knowledge fills them in?
3) are there any obvious bugs or missing elements?

Thanks,
matthew

--000e0cd56c5a6936b704a0e607a2
Content-Type: application/octet-stream; name="posix_fallocate.2"
Content-Disposition: attachment; filename="posix_fallocate.2"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gmi37vt21

LlwiIENvcHlyaWdodCAoYykgMTk4MCwgMTk5MSwgMTk5MwouXCIJVGhlIFJlZ2VudHMgb2YgdGhl
IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi5cIgouXCIg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci5cIiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLlwiIGFyZSBtZXQ6Ci5cIiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAouXCIgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgouXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLlwiICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci5cIiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycwouXCIgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi5cIiAgICB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLlwiCi5cIiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAou
XCIgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi5cIiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQouXCIgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
Ci5cIiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAouXCIgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLlwiIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KQouXCIgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLlwiIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLlwiIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKLlwiIFNVQ0ggREFNQUdFLgouXCIKLlwiICAgICBAKCMpb3Blbi4yCTguMiAoQmVya2Vs
ZXkpIDExLzE2LzkzCi5cIiAkRnJlZUJTRCQKLlwiCi5EZCBBcHJpbCAxMywgMjAxMQouRHQgUE9T
SVhfRkFMTE9DQVRFIDIKLk9zCi5TaCBOQU1FCi5ObSBwb3NpeF9mYWxsb2NhdGUKLk5kIHByZS1h
bGxvY2F0ZSBzdG9yYWdlIGZvciBhIHJhbmdlIGluIGEgZmlsZQouU2ggTElCUkFSWQouTGIgbGli
YwouU2ggU1lOT1BTSVMKLkluIGZjbnRsLmgKLkZ0IGludAouRm4gcG9zaXhfZmFsbG9jYXRlICJp
bnQgZmQiICJvZmZfdCBvZmZzZXQiICJvZmZfdCBsZW4iCi5TaCBERVNDUklQVElPTgpSZXF1aXJl
ZCBzdG9yYWdlIGZvciB0aGUgcmFuZ2UKLkZhIG9mZnNldAp0bwouRmEgb2Zmc2V0ICsKLkZhIGxl
bgppbiB0aGUgZmlsZSByZWZlcmVuY2VkIGJ5Ci5GYSBmZAppcyBndWFyYXRlZWQgdG8gYmUgYWxs
b2NhdGVkIHVwb24gc3VjY2Vzc2Z1bCByZXR1cm4uClRoYXQgaXMsIGlmCi5GbiBwb3NpeF9mYWxs
b2NhdGUKcmV0dXJucyBzdWNjZXNzZnVsbHksIHN1YnNlcXVlbnQgd3JpdGVzIHRvIHRoZSBzcGVj
aWZpZWQgZmlsZSBkYXRhCndpbGwgbm90IGZhaWwgZHVlIHRvIGxhY2sgb2YgZnJlZSBzcGFjZSBv
biB0aGUgZmlsZSBzeXN0ZW0gc3RvcmFnZQptZWRpYS4KQW55IGV4aXN0aW5nIGZpbGUgZGF0YSBp
biB0aGUgc3BlY2lmaWVkIHJhbmdlIGlzIHVubW9kaWZpZWQuCklmCi5GYSBvZmZzZXQgKwouRmEg
bGVuCmlzIGJleW9uZCB0aGUgY3VycmVudCBmaWxlIHNpemUsIHRoZW4KLkZuIHBvc2l4X2ZhbGxv
Y2F0ZQp3aWxsIGFkanVzdCB0aGUgZmlsZSBzaXplIHRvCi5GYSBvZmZzZXQgKwouRmEgbGVuIC4K
T3RoZXJ3aXNlLCB0aGUgZmlsZSBzaXplIHdpbGwgbm90IGJlIGNoYW5nZWQuCi5QcApTcGFjZSBh
bGxvY2F0ZWQgYnkKLkZuIHBvc2l4X2ZhbGxvY2F0ZQp3aWxsIGJlIGZyZWVkIGJ5IGEgc3VjY2Vz
c2Z1bCBjYWxsIHRvCi5YciBjcmVhdCAyCm9yCi5YciBvcGVuIDIKdGhhdCB0cnVuY2F0ZXMgdGhl
IHNpemUgb2YgdGhlIGZpbGUuClNwYWNlIGFsbG9jYXRlZCB2aWEKLkZuIHBvc2l4X2ZhbGxvY2F0
ZQptYXkgYmUgZnJlZWQgYnkgYSBzdWNjZXNzZnVsIGNhbGwgdG8KLlhyIGZ0cnVuY2F0ZSAyCnRo
YXQgcmVkdWNlcyB0aGUgZmlsZSBzaXplIHRvIGEgc2l6ZSBzbWFsbGVyIHRoYW4KLkZhIG9mZnNl
dCArCi5GYSBsZW4gLgouUHAKLlNoIFJFVFVSTiBWQUxVRVMKSWYgc3VjY2Vzc2Z1bCwKLkZuIHBv
c2l4X2ZhbGxvY2F0ZQpyZXR1cm5zIHplcm8uCkl0IHJldHVybnMgLTEgb24gZmFpbHVyZSwgYW5k
IHNldHMKLlZhIGVycm5vCnRvIGluZGljYXRlIHRoZSBlcnJvci4KLlNoIEVSUk9SUwpQb3NzaWJs
ZSBmYWlsdXJlIGNvbmRpdGlvbnM6Ci5CbCAtdGFnIC13aWR0aCBFcgouSXQgQnEgRXIgRUJBREYK
VGhlCi5GYSBmZAphcmd1bWVudCBpcyBub3QgYSB2YWxpZCBmaWxlIGRlc2NyaXB0b3IuCi5JdCBC
cSBFciBFQkFERgpUaGUKLkZhIGZkCmFyZ3VtZW50IHJlZmVyZW5jZXMgYSBmaWxlIHRoYXQgd2Fz
IG9wZW5lZCB3aXRob3V0IHdyaXRlIHBlcm1pc3Npb24uCi5JdCBCcSBFciBFRkJJRwpUaGUgdmFs
dWUgb2YKLkZhIG9mZnNldCArCi5GYSBsZW4KaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIGZp
bGUgc2l6ZS4KLkl0IEJxIEVyIEVJTlRSCkEgc2lnbmFsIHdhcyBjYXVnaHQgZHVyaW5nIGV4ZWN1
dGlvbi4KLkl0IEJxIEVyIEVJTlZBTApUaGUKLkZhIGxlbgphcmd1bWVudCB3YXMgemVybyBvciB0
aGUKLkZhIG9mZnNldAphcmd1bWVudCB3YXMgbGVzcyB0aGFuIHplcm8uCi5JdCBCcSBFciBFSU8K
QW4gSS9PIGVycm9yIG9jY3VycmVkIHdoaWxlIHJlYWRpbmcgZnJvbSBvciB3cml0aW5nIHRvIGEg
ZmlsZSBzeXN0ZW0uCi5JdCBCcSBFciBFTk9ERVYKVGhlCi5GYSBmZAphcmd1bWVudCBkb2VzIG5v
dCByZWZlciB0byBhIHJlZ3VsYXIgZmlsZS4KLkl0IEJxIEVyIEVOT1NQQwpUaGVyZSBpcyBpbnN1
ZmZpY2llbnQgZnJlZSBzcGFjZSByZW1haW5pbmcgb24gdGhlIGZpbGUgc3lzdGVtIHN0b3JhZ2UK
bWVkaWEuCi5JdCBCcSBFciBFU1BJUEUKVGhlCi5GYSBmZAphcmd1bWVudCBpcyBhc3NvY2lhdGVk
IHdpdGggYSBwaXBlIG9yIEZJRk8uCi5FbAouU2ggU0VFIEFMU08KLlhyIGNyZWF0IDIgLAouWHIg
ZnRydW5jYXRlIDIgLAouWHIgb3BlbiAyICwKLlhyIHVubGluayAyCi5TaCBTVEFOREFSRFMKVGhl
Ci5GbiBwb3NpeF9mYWxsb2NhdGUKc3lzdGVtIGNhbGwgY29uZm9ybXMgdG8KLlN0IC1wMTAwMy4x
LTIwMDQgLgouU2ggSElTVE9SWQpUaGUKLkZuIHBvc2l4X2ZhbGxvY2F0ZQpmdW5jdGlvbiBhcHBl
YXJlZCBpbgouRnggOS4wIC4KLlNoIEFVVEhPUlMKLkZuIHBvc2l4X2ZhbGxvY2F0ZQphbmQgdGhp
cyBtYW51YWwgcGFnZSB3ZXJlIGluaXRpYWxseSB3cml0dGVuIGJ5Ci5BbiBNYXR0aGV3IEZsZW1p
bmcgQXEgbWRmQEZyZWVCU0Qub3JnIC4K
--000e0cd56c5a6936b704a0e607a2--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTimYzJ11w9X1OHShEn2wi6gjHx=YjA>