Re: Catching a RAID error in a process

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 18 Jul 2012 16:31:55 -0400 Bill Davidsen <davidsen@xxxxxxx> wrote:

> Can someone point me to the docs to have a process run or notified when a RAID 
> event triggers? I've been playing with some recovery ideas, but polling states 
> and status is not the proper way to do this, and I want to test with a user 
> program before I start putting patches in the kernel.
> 

I guess you don't mean "run mdadm --monitor --program /bin/myscript" ??

Do you want "just any event" or some specific set of events?

See mdstat_wait in mdstat.c in the mdadm sources.  It waits for any event by
using 'select' on /proc/mdstat.

void mdstat_wait(int seconds)
{
	fd_set fds;
	struct timeval tm;
	int maxfd = 0;
	FD_ZERO(&fds);
	if (mdstat_fd >= 0) {
		FD_SET(mdstat_fd, &fds);
		maxfd = mdstat_fd;
	}
	tm.tv_sec = seconds;
	tm.tv_usec = 0;
	select(maxfd + 1, NULL, NULL, &fds, &tm);
}


mdstat_fd is a global variable 
    mdstat_fd = open("/proc/mdstat", O_RDONLY);

NeilBrown

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux