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>