summaryrefslogtreecommitdiff
path: root/libdiskfs/io-read.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdiskfs/io-read.c')
-rw-r--r--libdiskfs/io-read.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/libdiskfs/io-read.c b/libdiskfs/io-read.c
index 8f0b4a03..4c2adf31 100644
--- a/libdiskfs/io-read.c
+++ b/libdiskfs/io-read.c
@@ -71,21 +71,23 @@ diskfs_S_io_read (struct protid *cred,
if (maxread == 0)
err = 0;
else if (S_ISLNK (np->dn_stat.st_mode))
- /* Read from a symlink. */
- if (! diskfs_read_symlink_hook)
- err = EINVAL;
- else
- {
- if (off == 0 && maxread == np->dn_stat.st_size)
- err = (*diskfs_read_symlink_hook)(np, buf);
- else
- {
- char *whole_link = alloca (np->dn_stat.st_size);
- err = (*diskfs_read_symlink_hook)(np, whole_link);
- if (! err)
- memcpy (buf, whole_link + off, maxread);
- }
- }
+ {
+ /* Read from a symlink. */
+ if (! diskfs_read_symlink_hook)
+ err = EINVAL;
+ else
+ {
+ if (off == 0 && maxread == np->dn_stat.st_size)
+ err = (*diskfs_read_symlink_hook)(np, buf);
+ else
+ {
+ char *whole_link = alloca (np->dn_stat.st_size);
+ err = (*diskfs_read_symlink_hook)(np, whole_link);
+ if (! err)
+ memcpy (buf, whole_link + off, maxread);
+ }
+ }
+ }
else
err = EINVAL; /* Use read below. */