diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 3418c94bcf17..d46f24c68498 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -3105,31 +3105,6 @@ xfs_symlink( | |||
3105 | pathlen = strlen(target_path); | 3105 | pathlen = strlen(target_path); |
3106 | if (pathlen >= MAXPATHLEN) /* total string too long */ | 3106 | if (pathlen >= MAXPATHLEN) /* total string too long */ |
3107 | return XFS_ERROR(ENAMETOOLONG); | 3107 | return XFS_ERROR(ENAMETOOLONG); |
3108 | if (pathlen >= MAXNAMELEN) { /* is any component too long? */ | ||
3109 | int len, total; | ||
3110 | char *path; | ||
3111 | |||
3112 | for (total = 0, path = target_path; total < pathlen;) { | ||
3113 | /* | ||
3114 | * Skip any slashes. | ||
3115 | */ | ||
3116 | while(*path == '/') { | ||
3117 | total++; | ||
3118 | path++; | ||
3119 | } | ||
3120 | |||
3121 | /* | ||
3122 | * Count up to the next slash or end of path. | ||
3123 | * Error out if the component is bigger than MAXNAMELEN. | ||
3124 | */ | ||
3125 | for(len = 0; *path != '/' && total < pathlen;total++, path++) { | ||
3126 | if (++len >= MAXNAMELEN) { | ||
3127 | error = ENAMETOOLONG; | ||
3128 | return error; | ||
3129 | } | ||
3130 | } | ||
3131 | } | ||
3132 | } | ||
3133 | 3108 | ||
3134 | if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) { | 3109 | if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) { |
3135 | error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dp, | 3110 | error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dp, |