Go to file
Darren Hart f01c1a6bce libext2fs: add the ext2fs_symlink() function
Creating symlinks is a complex affair when accounting for slowlinks.

Create a new function, ext2fs_symlink(), modeled after ext2fs_mkdir().
Like ext2fs_mkdir(), ext2fs_symlink() takes on the task of allocating a
new inode and block (for slowlinks), setting up sane default values in
the inode, copying the target path to either the inode (for fastlinks)
or to the first block (for slowlinks), and accounting for the inode and
block stats.  Disallow link targets longer than blocksize as the Linux
kernel prevents this.

It does not attempt to expand the parent directory, instead returning
EXT2_ET_DIR_NO_SPACE and leaving it to the caller to expand just as
ext2fs_mkdir() does.  Ideally, I think both of these functions should
make a single attempt to expand the directory.

[ Fixed a few bugs discovered when creating a test case for ext2fs_symlink() ]

Signed-off-by: Darren Hart <dvhart@infradead.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: Andreas Dilger <adilger@dilger.ca>
2013-01-16 14:09:17 -05:00
config config: silence printf format warnings 2013-01-08 21:04:03 -05:00
contrib contrib/fallocate: add support for punch functionality 2012-12-06 11:21:44 -05:00
debian libext2fs: add the ext2fs_symlink() function 2013-01-16 14:09:17 -05:00
debugfs debugfs: fix gcc-wall complaints 2013-01-14 16:54:09 -05:00
doc Clean up texinfo files 2013-01-02 10:06:09 -05:00
e2fsck e2fsck: avoid memory corruption on ext2fs_open2 failure 2013-01-08 20:42:26 -05:00
ext2ed Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
include/nonunix Remove trailing whitespace for the entire source tree 2008-08-27 23:07:54 -04:00
install-utils Remove Changelog files since they're not used after the git migration 2007-07-08 08:50:41 -04:00
intl Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
lib libext2fs: add the ext2fs_symlink() function 2013-01-16 14:09:17 -05:00
misc mke2fs: document bigalloc and cluster-size 2013-01-15 14:13:10 -05:00
po Update Release Notes, Changelogs, version.h, etc. for 1.42.6 release 2012-09-21 12:53:14 -04:00
resize resize2fs: add debugging code to test the old online resizing interfaces 2013-01-14 16:53:50 -05:00
tests tests: add test of an incorrect interior node in an extent tree 2012-12-20 21:48:08 -05:00
util util: respect HAVE_MALLOC_H 2012-08-19 17:57:17 -04:00
.gitignore build: add generated files to .gitignore 2012-07-14 19:43:39 -04:00
.hgignore Ignore quilt work files 2005-07-19 08:41:27 -05:00
.missing-copyright Many files: 1997-04-29 16:15:03 +00:00
.release-checklist Update release checklist to include reminder to update translation 2008-07-10 17:25:22 -04:00
ABOUT-NLS Update to gettext 0.11.5. We now enable NLS support by default. 2003-05-03 16:35:17 -04:00
aclocal.m4 Enhance build system so that "make V=1" works like the Linux Kernel 2009-07-02 18:19:10 -04:00
configure configure: clarify message regarding checking if we can link with -static 2012-12-15 22:11:31 -05:00
configure.in configure.in: require at least autoconf 2.54 2012-12-24 10:49:45 -05:00
COPYING Clarify the copyright licenses used by the various libraries in COPYING 2007-06-23 01:04:53 -04:00
depfix.sed Update Release Notes, Changelogs, version.h, etc. for 1.42 release 2011-11-29 16:48:14 -05:00
e2fsprogs.lsm Update Release Notes, Changelogs, version.h, etc. for 1.42.6 release 2012-09-21 12:53:14 -04:00
e2fsprogs.spec.in misc: clean up compiler warnings 2011-06-11 10:58:25 -04:00
INSTALL Add a comment in INSTALL regarding --disable-tls on older systems 2008-07-10 09:08:44 -04:00
INSTALL.elfbin ChangeLog, INSTALL.elfbin: 1999-01-02 04:15:29 +00:00
Makefile.in Fix parallel (make -j) build 2012-05-11 22:13:29 -04:00
MCONFIG.in Fix blhc (Build Log Hardening Check) warnings 2012-06-13 16:06:44 -04:00
README Update changelogs for 1.42.7 release 2013-01-01 17:17:14 -05:00
README.subset Update release notes, version files for 1.40.4 release 2008-01-01 00:35:17 -05:00
RELEASE-NOTES Update changelogs for 1.42.7 release 2013-01-01 17:17:14 -05:00
SHLIBS Many files: 1997-04-29 16:15:03 +00:00
SUBMITTING-PATCHES Added SUBMITTING-PATCHES file 2005-07-05 22:30:13 -05:00
TODO Update TODO to remove item which is already completed. 2006-05-13 09:28:04 -04:00
version.h Update changelogs for 1.42.7 release 2013-01-01 17:17:14 -05:00
wordwrap.pl Fix wordwrap.pl so it is more portable 2012-09-21 12:50:04 -04:00

	This is the new version (1.42.7) of the second extended file
system management programs.

	From time to time, I release new versions of e2fsprogs, to fix
bugs and to make the utilities more robust.  You can always find
information about the latest version at the the e2fsprogs web page,
which is:

	http://e2fsprogs.sourceforge.net

	The INSTALL file has instructions on building and installing
e2fsprogs.  Provisions for building Red Hat RPMs and Debian dpkg files
are supplied as well.

	In case of bugs in these programs, please contact Ted Ts'o at
tytso@mit.edu or tytso@alum.mit.edu.  See the e2fsck man page for
suggestions of what sort of information to include when submitting bug
reports for these programs.