linux/fs/btrfs
Filipe David Borba Manana f06becc411 Btrfs: don't store NULL byte in symlink extents
It is not necessary to store the NULL byte in a symlink inline file
extent. There's currently no code that requires the NULL byte to be
present in the extent. This change also doesn't break file format
compatibility nor the send/receive feature.

The VFS also doesn't need the NULL byte to be present in the extent,
as it reads up to inode->i_size bytes (which already excluded the NULL
byte) and sets the NULL byte for us (in fs/namei.c:page_getlink()).

So with this change we save 1 byte per symlink file extent (which is
always inlined in the btree leaf) without losing backward and forward
compatibility.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-11-11 21:49:51 -05:00
..
tests Btrfs: separate out tests into their own directory 2013-09-01 08:15:38 -04:00
Kconfig Btrfs: add support for asserts 2013-09-01 08:16:32 -04:00
Makefile Btrfs: introduce a tree for items that map UUIDs to something 2013-09-01 08:15:52 -04:00
acl.c Btrfs: skip adding an acl attribute if we don't have to 2012-12-16 20:46:15 -05:00
async-thread.c Btrfs: eliminate races in worker stopping code 2013-10-04 16:02:13 -04:00
async-thread.h Btrfs: eliminate races in worker stopping code 2013-10-04 16:02:13 -04:00
backref.c Btrfs: allocate prelim_ref with a slab allocater 2013-09-01 08:16:27 -04:00
backref.h Btrfs: allocate prelim_ref with a slab allocater 2013-09-01 08:16:27 -04:00
btrfs_inode.h Btrfs: check roots last log commit when checking if an inode has been logged 2013-09-21 11:05:24 -04:00
check-integrity.c Btrfs: Use %z to format size_t 2013-09-01 08:16:19 -04:00
check-integrity.h Btrfs: add optional integrity check code 2011-12-21 19:14:09 +01:00
compat.h
compression.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
compression.h btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
ctree.c Btrfs: fixup error handling in btrfs_reloc_cow 2013-09-21 10:58:54 -04:00
ctree.h Btrfs: remove space_info->reservation_progress 2013-09-21 11:05:27 -04:00
delayed-inode.c Btrfs: fix printing of non NULL terminated string 2013-09-01 08:16:20 -04:00
delayed-inode.h [readdir] convert btrfs 2013-06-29 12:57:00 +04:00
delayed-ref.c Btrfs: get rid of sparse warnings 2013-09-01 08:15:50 -04:00
delayed-ref.h Btrfs: handle running extent ops with skinny metadata 2013-05-17 21:40:15 -04:00
dev-replace.c Merge branch 'for-linus' into for-linus-3.12 2013-10-05 10:51:32 -04:00
dev-replace.h Btrfs: add new sources for device replace code 2012-12-12 17:15:41 -05:00
dir-item.c btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
disk-io.c Btrfs: eliminate the exceptional root_tree refs=0 2013-11-11 21:49:26 -05:00
disk-io.h Btrfs: fix oops caused by the space balance and dead roots 2013-10-10 21:31:02 -04:00
export.c Btrfs: cleanup: don't check the same thing twice 2013-06-14 11:29:30 -04:00
export.h
extent-tree.c Btrfs: remove space_info->reservation_progress 2013-09-21 11:05:27 -04:00
extent_io.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2013-10-12 12:54:24 -07:00
extent_io.h btrfs: mark some local function as 'static' 2013-09-01 08:15:51 -04:00
extent_map.c btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
extent_map.h Btrfs: fix bad extent logging 2013-05-06 15:54:34 -04:00
file-item.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2013-09-22 14:58:49 -07:00
free-space-cache.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2013-09-22 14:58:49 -07:00
free-space-cache.h Btrfs: allocate the free space by the existed max extent size when ENOSPC 2013-09-21 11:05:23 -04:00
hash.h btrfs: extended inode refs 2012-10-09 09:14:45 -04:00
inode-item.c btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
inode-map.c Btrfs: eliminate the exceptional root_tree refs=0 2013-11-11 21:49:26 -05:00
inode-map.h Btrfs: Support reading/writing on disk free ino cache 2011-04-25 16:46:11 +08:00
inode.c Btrfs: don't store NULL byte in symlink extents 2013-11-11 21:49:51 -05:00
ioctl.c btrfs: change extent-same to copy entire argument struct 2013-09-21 11:05:31 -04:00
locking.c btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
locking.h Btrfs: remove btrfs_try_spin_lock 2013-03-14 14:57:10 -04:00
lzo.c Btrfs: return -1 when lzo compression makes data bigger 2013-09-01 07:57:19 -04:00
math.h Btrfs: cleanup duplicated division functions 2012-12-11 13:31:30 -05:00
ordered-data.c Btrfs: kill delay_iput arg to the wait_ordered functions 2013-09-21 11:05:27 -04:00
ordered-data.h Btrfs: kill delay_iput arg to the wait_ordered functions 2013-09-21 11:05:27 -04:00
orphan.c btrfs: replace many BUG_ONs with proper error handling 2012-03-22 11:52:54 +01:00
print-tree.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
print-tree.h btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
qgroup.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
raid56.c Btrfs, raid56: fix memory leak when allocating pages for p/q stripes failed 2013-09-01 08:04:27 -04:00
raid56.h Btrfs: RAID5 and RAID6 2013-02-01 14:24:23 -05:00
rcu-string.h Btrfs: use rcu to protect device->name 2012-06-14 21:29:16 -04:00
reada.c Btrfs: fix reada debug code compilation 2013-05-06 15:54:55 -04:00
relocation.c Btrfs: fix oops caused by the space balance and dead roots 2013-10-10 21:31:02 -04:00
root-tree.c Btrfs: insert orphan roots into fs radix tree 2013-10-10 21:30:53 -04:00
scrub.c Btrfs: improve replacing nocow extents 2013-09-21 11:05:26 -04:00
send.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2013-09-12 09:58:51 -07:00
send.h btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
struct-funcs.c Btrfs: rewrite BTRFS_SETGET_FUNCS 2012-07-23 16:28:06 -04:00
super.c Btrfs: create the uuid tree on remount rw 2013-09-21 11:50:43 -04:00
sysfs.c btrfs: fixup/remove module.h usage as required 2013-03-01 15:01:01 -05:00
transaction.c Btrfs: fix transid verify errors when recovering log tree 2013-10-04 16:02:09 -04:00
transaction.h btrfs: mark some local function as 'static' 2013-09-01 08:15:51 -04:00
tree-defrag.c btrfs: remove cache only arguments from defrag path 2013-02-20 12:59:36 -05:00
tree-log.c Btrfs: drop dir i_size when adding new names on replay 2013-09-21 11:05:25 -04:00
tree-log.h btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
ulist.c Btrfs: fix crash regarding to ulist_add_merge 2013-07-02 11:50:59 -04:00
ulist.h Btrfs: add a rb_tree to improve performance of ulist search 2013-05-06 15:54:44 -04:00
uuid-tree.c Btrfs: check UUID tree during mount if required 2013-09-01 08:15:58 -04:00
volumes.c Merge branch 'for-linus' into for-linus-3.12 2013-10-05 10:51:32 -04:00
volumes.h Btrfs: add btrfs_alloc_device and switch to it 2013-09-01 08:16:04 -04:00
xattr.c btrfs: make static code static & remove dead code 2013-05-06 15:55:23 -04:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
zlib.c btrfs: fix message printing 2012-10-09 09:19:57 -04:00