Giter VIP home page Giter VIP logo

Comments (3)

lundman avatar lundman commented on September 2, 2024

ok, So query_information(FileEaInformation) and set_file_information(FileEaInformation) seem to be a legacy API for small xattrs. Combined maximum length of 0xffff.

The functions come in as "binary blob" - similar to readdir, each entry has a next offset, name length, value length followed by name and value, there is some 4 byte padding between structs.

Our code should iterate through the struct, and call the ZFS APIs zpl_xattr_set_sa() zfs_get_xattrdir() zfs_obtain_xattr and zfs_read/zfs_write to deal with the value.

readdir should also be able to return EAs, which could be a pain.

If a valuelen is 0, it should remove xattr (nvlist_remove / zfs_remove).

Full XATTRs appear to be ADS (alternate data stream) - also discussed in #34

ADS are encoded in the name, as in filename.txt:streamname:type - where type is NTFS specific (like $OBJECT_ID, $EA, $BITMAP, ...) but we should at least handle $DATA. The default, normal datastream has no name, so is filename.txt::$DATA.

Apart from the filename parsing, converting streams into ZFS XATTRs should be easy, as they are almost the same.

https://docs.microsoft.com/en-us/windows/desktop/fileio/file-streams

from zfsin.

lundman avatar lundman commented on September 2, 2024

#100

from zfsin.

lundman avatar lundman commented on September 2, 2024

Merged with master.

from zfsin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.