From 33a6535d00eff4475a1557f3d9124e362a74ad28 Mon Sep 17 00:00:00 2001 From: Artur Wojcik Date: Thu, 10 Dec 2009 12:03:40 -0700 Subject: Fix required to enable RAID arrays on SAS disks. The patch increases the capacity of buffers used to store sysfs path names. Originally the buffers were too small to hold the canonical representation of sysfs path (in case of a SAS device, especially a device installed behind an expander). Signed-off-by: Artur Wojcik Reviewed-by: Andre Noll Signed-off-by: Dan Williams --- sysfs.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'sysfs.c') diff --git a/sysfs.c b/sysfs.c index 35dfbd4..1d15ff6 100644 --- a/sysfs.c +++ b/sysfs.c @@ -100,13 +100,8 @@ void sysfs_init(struct mdinfo *mdi, int fd, int devnum) struct mdinfo *sysfs_read(int fd, int devnum, unsigned long options) { - /* Longest possible name in sysfs, mounted at /sys, is - * /sys/block/md_dXXX/md/dev-XXXXX/block/dev - * /sys/block/md_dXXX/md/metadata_version - * which is about 41 characters. 50 should do for now - */ - char fname[50]; - char buf[1024]; + char fname[PATH_MAX]; + char buf[PATH_MAX]; char *base; char *dbase; struct mdinfo *sra; @@ -574,8 +569,8 @@ int sysfs_set_array(struct mdinfo *info, int vers) int sysfs_add_disk(struct mdinfo *sra, struct mdinfo *sd, int in_sync) { - char dv[100]; - char nm[100]; + char dv[PATH_MAX]; + char nm[PATH_MAX]; char *dname; int rv; -- cgit