IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
* implement a reschedule flag in /var/run. Last thing the prog do before
exit is check if a call to multipath was done (but canceled by
/var/run/multipath.run check) during its execution. If so restart the
main loop.
* implement a blacklist of sysfs bdev to not bother with for now (hd,
md, dm, sr, scd, ram, raw). This avoid sending SG_IO to unappropiate
devices.
Compiles & survive "while true;do (./multipath -v &);done"
here is the next update which brings this multipath to the state i'm not
ashamed of it being in udev :)
* drop a libdevmapper copy in extras/multipath; maybe discussions w/
Sistina folks will bring a better solution in the future.
* drop a putchar usage in libdevmapper to compile cleanly with klibc
* drop another such usage of my own in main.c
* massage the Makefile to compile libdevmapper against klibc
* use "ld" to produce the binary rather than "gcc -static"
* stop being stupid w/ uneeded major, minor & dev in main.c:dm_mk_node()
* reverse to creating striped target for now because the multipath
target is more hairy than expected initialy
* push the version code to 009 to be in synch w/ udev
builds & run here.
binary size is 43ko, which is fairly gratifying after all the efforts
I've put to compiling it with klibc :)
I've never seen any project where the documentation is in sync with the
code at this early stage. Nice! So here is the patch to make it extra perfect :)
remove random indent to be consistent
style is "shell style"
s/wildcard/pattern/
mention negation char in character class
While I was adding pattern match to the LABEL method i hit a bug.
We modify a string returned from libsysfs, so with every iteration is is
truncated by one char:
Dec 4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec 4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec 4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESXS '
Dec 4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ESX' with '?IBM-ESXS'
Dec 4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec 4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec 4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ESX'
Dec 4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-ES' with 'IBM-ESXS?'
Dec 4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec 4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec 4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-ES'
Dec 4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-E' with 'IBM-ES??'
Dec 4 02:27:16 pim udev[23307]: do_label: dev->bus='scsi' sysfs_device->bus='scsi'
Dec 4 02:27:16 pim udev[23307]: do_label: look for device attribute 'vendor'
Dec 4 02:27:16 pim udev[23307]: do_label: xxx 'IBM-E'
Dec 4 02:27:16 pim udev[23307]: do_label: compare attribute 'vendor' value 'IBM-' with 'IBM-ESXSS'
I changed the behavior to remove only the line feed.
03-bug-in-linefeed-removal.diff
remove only the line feed from string not every last char
As promised yesterday, here is a patch to implement a more advanced
pattern matching instead of the simple '*'.
We can remove the "tty"="tty" line from udev.rules now and
replace "tty*" by "tty[0-9]*" to catch only the vc's.
implement pattern matching in namedev
'*' - to match zero or more chars
'?' - to match exactly one char
'[]' - character classes with ranges '[0-9]'and negation [!A]
the older udev.config file is now called udev.rules.
This allows us to better control configuration values, and move away from
the environment variables.
This patch adds -nodefaultlibs to LDFLAGS when compiling udev against
klibc. This fixes the warning that I was getting when using $(LD)=gcc
in the versions after Makefile.klibc disappeared. The problem was that
it was still including a "-lc" in the call to the linker.
The quick patch I sent you yesterday fixes it in one location, but
there are other points in the library that calls sysfs_get_mnt_path. We
need to address all the areas in the library where paths are used. The
following patch is a band-aid until we can get a proper path management
in the library.
On Tuesday 25 November 2003 00:12, Chris Larson wrote:
> udev fails to compile here unless I'm doing a KLIBC build. The reason
> appears to be that the normal limits.h in the gcc inc dir doesn't pull
> in linux/limits.h, whereas the limits.h out in the klibc include dirs
> does. I'd think it'd be best to add a #include <linux/limits.h> to
> udev.h directly, since it uses PATH_MAX.
No, don't include kernel headers directly if you can avoid it.
The problem you are referring to seems to be with old tool chains,
I have the same symptom with my s390 gcc-2.95/glibc-2.1.3.
Including <sys/param.h> instead of <limits.h> seems to fix it.
here is a clean-up patch :
* removes sg_err.[ch] deps
* makes sure the core code play nice with klibc
* port the sysfs calls to dlist helpers
* links against udev's sysfs (need libsysfs.a & dlist.a)
* finally define DM_TARGET as "multipath" as Joe posted the code today
(not tested yet)
* push version forward (do you want it in sync with udev version?)
libdevmapper doesn't play well with klibc, so I wasn't able to produce a
static binary yet. Help needed here ... as I don't want to fall back to
merge libdevmapper code in the core.
It compiles here and doesn't segfault.
There seems to be a
mismatch in udev and in libsysfs as to what to expect if the mnt point
has a slash on the end or not. If I use the included patch, it breaks
something in udev. If I patch sysfs_get_mnt_path I break udev as well
because what you're expecting. I need to sit down and go through
the library and creaate a rule as to trailing slashes. Adding the env
brought this to light.
Here's the patch to up the library to the sysfsutils-0_3_0 level. The
following changes:
1) adds class name to sysfs_class_device structure
2) adds bus to sysfs_device
3) gets rid of code that made assumptions as to bus addresses being
unique across buses, which isn't the case.
I still owe you:
1) change getpagesize->sysconf. This is in the CVS tree and part of other
changes we're currently testing. Patch will follow.
2) you need a function to get a sysfs_class_device's parent. We hadn't
considered class devices to have parents, the one example of a multilevel
is the block class. We will add this function and send the patch to you.
On Monday 24 November 2003 01:29, Greg KH wrote:
> I think with the ability to capture the output of the CALLOUT rule,
> combined with the ability to put format modifiers in the CALLOUT program
> string, we now have everything in place to emulate the existing devfs
> naming scheme. Anyone want to verify this or not?
I would prefer to have the ability of creating partition nodes in devfs
style built-in to udev. Devfs used to call the whole disk e.g.
"/dev/dasd/0123/disk" and the partitions "/dev/dasd/0123/part[1-3]".
This can obviously be done with a CALLOUT rule, but its common enough
to make it a format modifier. AFAIK, this scheme has been used for
ide, scsi and dasd disks, which is about 99% of all disks ever connected
to Linux.
udev kept on segfaulting when it was in use, and not having the time
(and building it with DEBUG=true showing nothing), I have not tracked it
until tonight. Seems like I made a type-o, and forgotten the ':'
between one line's group and permission parameters. Attached patch
should stop the segfault, and warn at that at least.
04-udev.8-tweak-numeric-id-text.diff
o change "return value" to "returned string"
o add textual owner/group example for udev.permissions
o mention klibc compile as special case for udev.permissions
o remove duplicated numeric owner clause