The touch differences can be explained by the touch(1) that you're using:
 in the global zone, you're using /usr/bin/touch, but in the non-global, I
imagine that you're using /opt/local/bin/touch.  These two implementations
differ, so not a huge surprise that their implementation details differ.

As for FIONREAD: indeed, that seems screwed up -- it seems to be returning
the number of bytes instead of storing in in the specified argument.  I'll
get that fixed today...

         - Bryan



On Wed, Dec 10, 2014 at 8:00 AM, Youzhong Yang via smartos-discuss <
[email protected]> wrote:

> Hello again,
>
> I downloaded smartos latest image (joyent_20141127T173954Z) and tested
> inotify using it.
>
> Two issues were observed:
>
> 1. ioctl(fd, FIONREAD, ...) does not work as expected. It does not return
> the number of bytes that are available to be read on an inotify instance.
>
> 2. In an OS zone, touching a file always generates an IN_CREATE event,
> even though the file already exists. This only happens in an OS zone, not
> in global zone.
>
> Attached is the test program I used for testing. Just compile and run it,
> then in another terminal window, 'touch /tmp/file' twice. Please look at
> the details at the end of this e-mail.
>
> Thanks,
>
> -Youzhong
>
> --- In global zone ---
> [root@batfs5999 /var/tmp]# ./inotify
> ioctl = 64, errno = 0, bufsize = 0
> got 48 bytes
>    :: mask 256
>    -> New file file created
>    :: mask 4
>    -> file ATTRIB
> ioctl = 32, errno = 0, bufsize = 0
> got 24 bytes
>    :: mask 4
>    -> file ATTRIB
>
> --- In OS zone ---
> [root@batfs5999-cifs0 /var/tmp]# ./inotify
> ioctl = 64, errno = 0, bufsize = 0
> got 48 bytes
>    :: mask 256
>    -> New file file created
>    :: mask 4
>    -> file ATTRIB
> ioctl = 64, errno = 0, bufsize = 0
> got 48 bytes
>    :: mask 256
>    -> New file file created
>    :: mask 4
>    -> file ATTRIB
>
> --- On Linux  ---
> % ./inotify
> ioctl = 0, errno = 0, bufsize = 32
> got 32 bytes
>    :: mask 256
>    -> New file file created
> ioctl = 0, errno = 0, bufsize = 32
> got 32 bytes
>    :: mask 4
>    -> file ATTRIB
> ioctl = 0, errno = 0, bufsize = 32
> got 32 bytes
>    :: mask 4
>    -> file ATTRIB
>
> *smartos-discuss* | Archives
> <https://www.listbox.com/member/archive/184463/=now>
> <https://www.listbox.com/member/archive/rss/184463/21493597-819305a5> |
> Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-------------------------------------------
smartos-discuss
Archives: https://www.listbox.com/member/archive/184463/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb
Powered by Listbox: http://www.listbox.com

Reply via email to