[CRIU] [PATCH 21/23] restorer: wrapped the syscall sys_setrlimit
    Alexander Kartashov 
    alekskartashov at parallels.com
       
    Mon Jan 14 05:30:57 EST 2013
    
    
  
On 01/14/2013 02:10 PM, Pavel Emelyanov wrote:
> As far as I see from the ARM patch struct krlimir and struct rlimit
> do not differ. What's wrong?
Probably it's a feature of Debian. In the ARM patch i declare
the struct krlimit in the following way:
struct krlimit {
        unsigned long rlim_cur;
        unsigned long rlim_max;
};
The struct rlimit is declared in the following way in the system headers:
/* Type for resource quantity measurement.  */
#ifndef __USE_FILE_OFFSET64
typedef __rlim_t rlim_t;
#else
typedef __rlim64_t rlim_t;
#endif
#ifdef __USE_LARGEFILE64
typedef __rlim64_t rlim64_t;
#endif
struct rlimit
   {
     /* The current (soft) limit.  */
     rlim_t rlim_cur;
     /* The hard limit.  */
     rlim_t rlim_max;
   };
Since the macro FILE_OFFSET_BITS is 64 the fields cur and lim
becomes 64-bit long that results in a mismatch between the kernel
and user declarations of the struct rlimit in this case.
I tried to remove the macro definition but it only made things worse.
-- 
Sincerely yours,
Alexander Kartashov
Intern
Core team
www.parallels.com
Skype: aleksandr.kartashov
Email: alekskartashov at parallels.com
    
    
More information about the CRIU
mailing list