diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-14 17:35:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-14 17:35:56 -0400 |
commit | 33f1de69312432baecb997a570b7d77c4d02d1ed (patch) | |
tree | 24e9e7487ec3b892e120409aa2ac1b1263794373 /include | |
parent | 041d6d0be82bed7e0b87181dba5d10b8ab14afd9 (diff) | |
parent | 86d006365610fe6cda243d89b67d5047dca44656 (diff) |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/gfs2_ondisk.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/gfs2_ondisk.h b/include/linux/gfs2_ondisk.h index c56b4bce56d0..b80c88dedbbb 100644 --- a/include/linux/gfs2_ondisk.h +++ b/include/linux/gfs2_ondisk.h | |||
@@ -333,6 +333,28 @@ struct gfs2_leaf { | |||
333 | 333 | ||
334 | /* | 334 | /* |
335 | * Extended attribute header format | 335 | * Extended attribute header format |
336 | * | ||
337 | * This works in a similar way to dirents. There is a fixed size header | ||
338 | * followed by a variable length section made up of the name and the | ||
339 | * associated data. In the case of a "stuffed" entry, the value is | ||
340 | * inline directly after the name, the ea_num_ptrs entry will be | ||
341 | * zero in that case. For non-"stuffed" entries, there will be | ||
342 | * a set of pointers (aligned to 8 byte boundary) to the block(s) | ||
343 | * containing the value. | ||
344 | * | ||
345 | * The blocks containing the values and the blocks containing the | ||
346 | * extended attribute headers themselves all start with the common | ||
347 | * metadata header. Each inode, if it has extended attributes, will | ||
348 | * have either a single block containing the extended attribute headers | ||
349 | * or a single indirect block pointing to blocks containing the | ||
350 | * extended attribure headers. | ||
351 | * | ||
352 | * The maximim size of the data part of an extended attribute is 64k | ||
353 | * so the number of blocks required depends upon block size. Since the | ||
354 | * block size also determines the number of pointers in an indirect | ||
355 | * block, its a fairly complicated calculation to work out the maximum | ||
356 | * number of blocks that an inode may have relating to extended attributes. | ||
357 | * | ||
336 | */ | 358 | */ |
337 | 359 | ||
338 | #define GFS2_EA_MAX_NAME_LEN 255 | 360 | #define GFS2_EA_MAX_NAME_LEN 255 |