storage/posix translator

Notes

SET_FS_ID

This is so that all filesystem checks are done with the user's uid/gid and not GlusterFS's uid/gid.

MAKE_REAL_PATH

This macro concatenates the base directory of the posix volume ('option directory') with the given path.

need_xattr in lookup

If this flag is passed, lookup returns a xattr dictionary that contains the file's create time, the file's contents, and the version number of the file.

This is a hack to increase small file performance. If an application wants to read a small file, it can finish its job with just a lookup call instead of a lookup followed by read.

getdents/setdents

These are used by unify to set and get directory entries.

ALIGN_BUF

Macro to align an address to a page boundary (4K).

priv->export_statfs

In some cases, two exported volumes may reside on the same partition on the server. Sending statvfs info for both the volumes will lead to erroneous df output at the client, since free space on the partition will be counted twice.

In such cases, user can disable exporting statvfs info on one of the volumes by setting this option.

xattrop

This fop is used by replicate to set version numbers on files.

getxattr/setxattr hack to read/write files

A key, GLUSTERFS_FILE_CONTENT_STRING, is handled in a special way by getxattr/setxattr. A getxattr with the key will return the entire content of the file as the value. A setxattr with the key will write the value as the entire content of the file.

posix_checksum

This calculates a simple XOR checksum on all entry names in a directory that is used by unify to compare directory contents.