30 Nov 2011 08:34
Re: nilfs2 on Scientific Linux 6
Hi, Kihara-san and all
thank you for your rpm release.
i installed to my SL6.1 x64 environment, it works fine.
(mount, lscp, mkcp, mount -o cp=n, umount are checked)
but there's a bug in the kmod-nilfs2 rpm uninstall script.
when i try to uninstall the kmod rpm, fails like:
[root <at> testbed2 ~]# rpm -ev kmod-nilfs2
Freeing read locks for locker 0x5f: 20505/140619693737888
Freeing read locks for locker 0x61: 20505/140619693737888
error: ^%{kmod_version}$: regcomp failed: Invalid content of \{\}
error: %preun(kmod-nilfs2-0.3.0-0.el6.x86_64) scriptlet failed, exit
status 1
this is caused by kmodtool-nilfs2-el6 script:
cat <<EOF
%preun -n kmod-${kmod_name}${dashvariant}
rpm -ql
kmod-${kmod_name}${dashvariant}-%{kmod_version}-%{kmod_release}.$(arch)
| grep '\.ko$' > /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
EOF
the variables "%{kmod_version}" and "%{kmod_release}" will not be
expanded when the rpm package is going to be removed.
i found this in recent days, try to build rpm package by myself,
i can't understand that why these variable is placed on here.
(remove these variables, still works fine)
this part specifies the package name, so i think there's no necessity
for the variables.
on my environment, applying this patch fixes the uninstall problem.
--- kmodtool-nilfs2-el6.org 2011-11-30 16:20:53.471728124 +0900
+++ kmodtool-nilfs2-el6 2011-11-30 16:21:06.553726633 +0900
<at> <at> -172,7 +172,7 <at> <at>
cat <<EOF
%preun -n kmod-${kmod_name}${dashvariant}
-rpm -ql
kmod-${kmod_name}${dashvariant}-%{kmod_version}-%{kmod_release}.$(arch)
| grep '\.ko$' > /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
+rpm -ql kmod-${kmod_name}${dashvariant} | grep '\.ko$' >
/var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
EOF
cat <<EOF
thanks.
(11/11/29 12:48), Seiji Kihara wrote:
> Hello Takada-san and all,
>
> I made RPM packages of nilfs2-kmod and nilfs-utils for RHEL 6 clones.
> They are placed at the NILFS site below:
>
> http://www.nilfs.org/pub/centos/6/SRPMS/
> http://www.nilfs.org/pub/centos/6/RPMS/x86_64/
> http://www.nilfs.org/pub/centos/6/RPMS/i686/
>
> Any feedback is welcome.
>
> Regards,
>
> Seiji Kihara
>
> At 2011/11/19 23:53, Ryusuke Konishi<konishi.ryusuke@...> wrote:
>> Hi TAKADA-san,
>> On Sat, 19 Nov 2011 17:19:32 +0900, Shingo TAKADA wrote:
>>> Hi
>>>
>>> i cloned the centos6 repo and confirmed nilfs2 works fine!
>>> there's no kernel panics happend on my environment, lscp and unmount
>>> works well. thank you very much.
>>>
>>>
>>> then, i'm trying to build rpm package of the centos6 kmod.
>>> but i'm not familiar with rpm and kernel modules.
>>>
>>> i'm reusing SPEC file from centos5's nilfs srpm.
>>> kmodtool is renewed in RHEL6, replace with it.
>>>
>>> in SPEC file, build and install section, SPEC file calls
>>> make with "modules" and "modules_install" argument.
>>> Makefile in the centos6-kmod repo has no such rules.
>>>
>>> how should i fix Makefile or SPEC file?
>>
>> You may change both files.
>>
>> I'm not familiar with rpm build, too. But, I guess it's possible to
>> add modules and modules_install targets to makefiles in the
>> nilfs2-kmod package to handle the change.
>>
>> Send us back the patch when well done. I will apply it to my
>> centos6-kmod tree. (At least for changes against makefiles).
>>
>>
>> Thanks,
>> Ryusuke Konishi
>>
>>
>>> thanks.
>>> Shingo TAKADA
>>>
>>> (11/11/13 3:58), Ryusuke Konishi wrote:
>>>> Hi,
>>>> On Sat, 12 Nov 2011 15:20:00 +0900, Shingo TAKADA wrote:
>>>>> Hi
>>>>>
>>>>> thank you for your advice.
>>>>>
>>>>> I replace the line, REQ_UNPLUG, with your patch, BIO_RW_UNPLUG in
>>>>> segbuf.c in SL6's kernel srpm archive.
>>>>>
>>>>> make is done successfully like 2.6.32.27's case (see my last post),
>>>>> and kernel panics like 2.6.32.27's case when unmounting the nilfs2
>>>>> partition...
>>>>>
>>>>> i rebuilt the nilfs2 partition again after replacing the nilfs2.ko
>>>>> module and modprobe it.
>>>>
>>>> I've pushed out a standalone nilfs2 kmod for Centos6 and SL6.
>>>>
>>>> It is available from http://git.nilfs.org/nilfs2-kmod-centos6.git as
>>>> follows:
>>>>
>>>> $ git clone http://git.nilfs.org/nilfs2-kmod-centos6.git
>>>> $ cd nilfs2-kmod-centos6
>>>> $ make
>>>> $ sudo make install
>>>>
>>>> It includes important changes and bug-fixes which are backported from
>>>> newer kernels. The kmod seems to work fine so far for me. Check it
>>>> out.
>>>>
>>>>
>>>> Regards,
>>>> Ryusuke Konishi
>>>>
>>>>> thanks.
>>>>> Shingo TAKADA
>>>>>
>>>>> (11/11/10 13:20), Ryusuke Konishi wrote:
>>>>>> Hi,
>>>>>> On Wed, 09 Nov 2011 16:18:53 +0900, Shingo TAKADA wrote:
>>>>>>> hi.
>>>>>>>
>>>>>>> I'm trying to use nilfs2 on Scientific Linux 6.1 with kernel
>>>>>>> 2.6.32-131.17.1.el6.x86_64.
>>>>>>> currently, there's no official package for SL6.1 (and RHEL6),
>>>>>>> so i tried to build rpm package using CentOS 5's srpm.
>>>>>>>
>>>>>>> i installed nilfs-kmod-2.0.22-4.src.rpm, extract nilfs-2.0.22.tar.bz2 and
>>>>>>> tried to make, but fails like:
>>>>>>>
>>>>>>> $ pwd
>>>>>>> /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs
>>>>>>> $ make -C /usr/src/kernels/2.6.32-131.17.1.el6.x86_64 M=`pwd`
>>>>>>> make: Entering directory `/usr/src/kernels/2.6.32-131.17.1.el6.x86_64'
>>>>>>> LD /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/built-in.o
>>>>>>> CC [M] /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/inode.o
>>>>>>> In file included from /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/inode.c:28:
>>>>>>> /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/nilfs.h: In function ‘nilfs_init_acl’:
>>>>>>> /tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/nilfs.h:234: error: dereferencing
>>>>>>> pointer to incomplete type
>>>>>>> make[1]: *** [/tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs/inode.o] Error 1
>>>>>>> make: *** [_module_/tmp/rpmbuild/SOURCES/nilfs-2.0.22/fs] Error 2
>>>>>>> make: Leaving directory `/usr/src/kernels/2.6.32-131.17.1.el6.x86_64'
>>>>>>>
>>>>>>>
>>>>>>> I installed SL6.1's kernel Source RPM(srpm) , try to make from the
>>>>>>> sources in the srpm. i installed kernel-2.6.32-131.17.1.el6.src.rpm
>>>>>>> using yumdownloader.
>>>>>>>
>>>>>>> but fails like:
>>>>>>> $ pwd
>>>>>>> /tmp/sl6-srpm-nilfs2
>>>>>>> $ make -C /usr/src/kernels/2.6.32-131.17.1.el6.x86_64 M=`pwd`
>>>>>>> make: Entering directory `/usr/src/kernels/2.6.32-131.17.1.el6.x86_64'
>>>>>>> LD /tmp/sl6-srpm-nilfs2/built-in.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/inode.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/file.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/dir.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/super.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/namei.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/page.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/mdt.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/btnode.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/bmap.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/btree.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/direct.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/dat.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/recovery.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/the_nilfs.o
>>>>>>> CC [M] /tmp/sl6-srpm-nilfs2/segbuf.o
>>>>>>> /tmp/sl6-srpm-nilfs2/segbuf.c: In function ‘nilfs_segbuf_write’:
>>>>>>> /tmp/sl6-srpm-nilfs2/segbuf.c:396: error: ‘REQ_UNPLUG’ undeclared (first
>>>>>>> use in this function)
>>>>>>> /tmp/sl6-srpm-nilfs2/segbuf.c:396: error: (Each undeclared identifier is
>>>>>>> reported only once
>>>>>>> /tmp/sl6-srpm-nilfs2/segbuf.c:396: error: for each function it appears in.)
>>>>>>> make[1]: *** [/tmp/sl6-srpm-nilfs2/segbuf.o] Error 1
>>>>>>> make: *** [_module_/tmp/sl6-srpm-nilfs2] Error 2
>>>>>>> make: Leaving directory `/usr/src/kernels/2.6.32-131.17.1.el6.x86_64'
>>>>>>
>>>>>> REQ_UNPLUG was introduced by the following patch (and has gone with
>>>>>> other patch). This seems to be a difference between the vanilla
>>>>>> kernel and the SL6 kernel. Thanks for reporting.
>>>>>>
>>>>>> diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c
>>>>>> index 2e6a272..4588fb9 100644
>>>>>> --- a/fs/nilfs2/segbuf.c
>>>>>> +++ b/fs/nilfs2/segbuf.c
>>>>>> <at> <at> -508,7 +508,7 <at> <at> static int nilfs_segbuf_write(struct nilfs_segment_buffer *s
>>>>>> egbuf,
>>>>>> * Last BIO is always sent through the following
>>>>>> * submission.
>>>>>> */
>>>>>> - rw |= (1<< BIO_RW_SYNCIO) | (1<< BIO_RW_UNPLUG);
>>>>>> + rw |= REQ_SYNC | REQ_UNPLUG;
>>>>>> res = nilfs_segbuf_submit_bio(segbuf,&wi, rw);
>>>>>> }
>>>>>>
>>>>>>
>>>>>>> how should i do to use nilfs on SL6 environment?
>>>>>>> or do you have any plan to release CentOS6 package of nilfs?
>>>>>>
>>>>>> We feel the necessity for creating kmod branch for the Centos6 kernel,
>>>>>> but don't have concrete plan.
>>>>>>
>>>>>> Ok, I will try it when I have time. Or, does anyone want to try it?
>>>>>>
>>>>>> Thanks,
>>>>>> Ryusuke Konishi
>>>>>>
>>>>>>> my environment: Scientific Linux 6.1 x64 on XenServer 5.6 SP2.
>>>>>>>
>>>>>>> Shingo TAKADA
>>>>>>> --
>>>>>>> takada@...
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majordomo@...
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
Shingo TAKADA
--
takada@...
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo@...
More majordomo info at http://vger.kernel.org/majordomo-info.html
RSS Feed