Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: GFS2: Whitespace fixes GFS2: Remove unused sysfs file GFS2: Be extra careful about deallocating inodes GFS2: Remove no_formal_ino generating code GFS2: Rename eattr.[ch] as xattr.[ch] GFS2: Clean up of extended attribute support GFS2: Add explanation of extended attr on-disk format GFS2: Add "-o errors=panic|withdraw" mount options GFS2: jumping to wrong label? GFS2: free disk inode which is deleted by remote node -V2 GFS2: Add a document explaining GFS2's uevents GFS2: Add sysfs link to device GFS2: Replace assertion with proper error handling GFS2: Improve error handling in inode allocation GFS2: Add some more info to uevents GFS2: Add online uevent to GFS2
This commit is contained in:
@@ -333,6 +333,28 @@ struct gfs2_leaf {
|
||||
|
||||
/*
|
||||
* Extended attribute header format
|
||||
*
|
||||
* This works in a similar way to dirents. There is a fixed size header
|
||||
* followed by a variable length section made up of the name and the
|
||||
* associated data. In the case of a "stuffed" entry, the value is
|
||||
* inline directly after the name, the ea_num_ptrs entry will be
|
||||
* zero in that case. For non-"stuffed" entries, there will be
|
||||
* a set of pointers (aligned to 8 byte boundary) to the block(s)
|
||||
* containing the value.
|
||||
*
|
||||
* The blocks containing the values and the blocks containing the
|
||||
* extended attribute headers themselves all start with the common
|
||||
* metadata header. Each inode, if it has extended attributes, will
|
||||
* have either a single block containing the extended attribute headers
|
||||
* or a single indirect block pointing to blocks containing the
|
||||
* extended attribure headers.
|
||||
*
|
||||
* The maximim size of the data part of an extended attribute is 64k
|
||||
* so the number of blocks required depends upon block size. Since the
|
||||
* block size also determines the number of pointers in an indirect
|
||||
* block, its a fairly complicated calculation to work out the maximum
|
||||
* number of blocks that an inode may have relating to extended attributes.
|
||||
*
|
||||
*/
|
||||
|
||||
#define GFS2_EA_MAX_NAME_LEN 255
|
||||
|
Reference in New Issue
Block a user