View Issue Details

IDProjectCategoryView StatusLast Update
00006871003.1(2013)/Issue7+TC1System Interfacespublic2024-06-11 09:02
Reporternick Assigned To 
PrioritynormalSeverityCommentTypeEnhancement Request
Status ClosedResolutionAccepted As Marked 
NameNick Stoughton
OrganizationUSENIX
User Referencenms-fallocate-1
Sectionposix_fallocate
Page Number893
Line Number29910-29931
Interp Status---
Final Accepted Text0000687:0001599
Summary0000687: Not all filesystems support posix_fallocate
DescriptionAs described in 0000684, not every filesystem can (or can easily) support posix_fallocate().

Applications need to know whether a filesystem supports posix_fallocate(). In addition to an error return from posix_fallocate() itself, it would be useful if an application could determine in advance whether or not a filesystem will support a call to posix_fallocate().
Desired ActionAdd the following entry to the table in lines 29910-29931:

_POSIX_ADVISORY_INFO _PC_ADVISORY_INFO 3,4

Add to RATIONALE, page 896, after line 30037:

The value returned for the variable _POSIX_ADVISORY_INFO indicates whether or not the filesystem supports all of the functionality required by the Advisory Information option. In particular, some systems may not support posix_fallocate() on all filesystems. A return value greater than zero indicates that the filesystem support all the functionality required. See <XREF to XBD 2.1.6 on page 26>.

In XBD, unistd.h, page 443, after line 14982, add

_PC_ADVISORY_INFO
Tagsissue8

Relationships

related to 0000684 Closed posix_fallocate() should be allowed to return ENOTSUP 

Activities

nico

2013-05-02 17:21

reporter   bugnote:0001563

Last edited: 2013-05-02 21:07

There's a typo in the link and link text to the report about posix_fallocate(). It's 0000684, not 0000654.

--------------------------------
The link has been fixed.

nico

2013-05-02 18:11

reporter   bugnote:0001565

Hmm, these pathconf() names seem too generic. Can we have "FALLOC" in them?

geoffclare

2013-05-03 09:08

manager   bugnote:0001566

The _POSIX_ADVISORY_INFO option includes posix_madvise() and
posix_memalign() which are not file system related, so
_PC_ADVISORY_INFO is definitely not the right way to go.

I agree with 0000687:0001565 that the new constant name(s) should
be specific to posix_fallocate(). The other alternative would
be to have it apply to posix_fadvise() as well, but I don't
see any need for that since posix_fadvise() doesn't have to
do anything with the information the application gives it.

I think that as well as adding the _PC_FALLOC constant, there
should be a new _POSIX_FALLOC constant added after _POSIX_ASYNC_IO
at page 440 line 14855 (and this should be the name used in the
Variable column of the pathconf table).

nico

2013-05-03 21:51

reporter   bugnote:0001586

This issue must be resolved together with #684 (where I asked for a pathconf() too). In fact, it strikes me as a dup of #684. If concurrent resolution cannot be achieved then this should be closed as a dup of #684.

eblake

2013-05-03 23:08

manager   bugnote:0001587

The intent of splitting this into two reports is that for TC2, we should document current behavior but not impose new requirements (bug:684), but for Issue 8, we should add a pathconf() and possibly impose other new requirements (bug:687). Yes, it's annoying that we can't add a pathconf in TC2, but at the same time, we felt it is an important enough issue that something has to be done at TC2 (even if it is only documenting the problem and that a FUTURE DIRECTIONS will probably make it easier to deal with the problem).

geoffclare

2013-05-10 09:44

manager   bugnote:0001599

At page 1426 line 47096, after this text added by 0000684:

    Not all file systems are capable of supporting posix_fallocate(),
    in which case the function will return ENOTSUP. However, if a
    system supports the option, there must be at least one file system
    that is capable of supporting this function.

add:

    The pathconf() and fpathconf() functions can be used to determine
    whether a file in a particular file system supports posix_fallocate().

After page 893 line 29928 section fpathconf add:
    _POSIX_FALLOC      _PC_FALLOC       8

Cross-volume changes to XBD...

After page 440 line 14855 section unistd.h, add:
    _POSIX_FALLOC
       The posix_fallocate() function is supported by the associated file.

After page 443 line 14985 section unistd.h, add:

    _PC_FALLOC

nico

2013-05-21 19:00

reporter   bugnote:0001619

"However, if a
    system supports the option, there must be at least one file system
    that is capable of supporting this function."

What exactly does this mean? One mounted filesystem? Or one filesystem type? If the latter, must it be included in the OS, or can it be a third-party filesystem?

I think it'd be better to exclude this requirement. There's no way to test it in, say, autoconf tests.

Issue History

Date Modified Username Field Change
2013-05-02 17:10 nick New Issue
2013-05-02 17:10 nick Name => Nick Stoughton
2013-05-02 17:10 nick Organization => USENIX
2013-05-02 17:10 nick User Reference => nms-fallocate-1
2013-05-02 17:10 nick Section => posix_fallocate
2013-05-02 17:10 nick Page Number => 893
2013-05-02 17:10 nick Line Number => 29910-29931
2013-05-02 17:10 nick Interp Status => ---
2013-05-02 17:10 nick Issue generated from: 0000684
2013-05-02 17:10 nick Relationship added related to 0000684
2013-05-02 17:21 nico Note Added: 0001563
2013-05-02 18:11 nico Note Added: 0001565
2013-05-02 21:07 Don Cragun Description Updated
2013-05-02 21:07 Don Cragun Note Edited: 0001563
2013-05-03 09:08 geoffclare Note Added: 0001566
2013-05-03 21:51 nico Note Added: 0001586
2013-05-03 23:08 eblake Note Added: 0001587
2013-05-10 09:44 geoffclare Note Added: 0001599
2013-05-10 09:45 geoffclare Tag Attached: issue8
2013-05-16 15:09 geoffclare Final Accepted Text => 0000687:0001599
2013-05-16 15:09 geoffclare Status New => Resolved
2013-05-16 15:09 geoffclare Resolution Open => Accepted As Marked
2013-05-21 19:00 nico Note Added: 0001619
2020-03-24 15:51 geoffclare Status Resolved => Applied
2024-06-11 09:02 agadmin Status Applied => Closed