diff --git a/fs/open.c b/fs/open.c index c32c89d6d8dbed71f831e94f8aa0c67eade8cfc1..8279c65d3befcdb963051a18ccbaf506bc620e1d 100644 --- a/fs/open.c +++ b/fs/open.c @@ -331,7 +331,9 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small) asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length) { - return do_sys_ftruncate(fd, length, 1); + long ret = do_sys_ftruncate(fd, length, 1); + prevent_tail_call(ret); + return ret; } /* LFS versions of truncate are only needed on 32 bit machines */ @@ -343,7 +345,9 @@ asmlinkage long sys_truncate64(const char __user * path, loff_t length) asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length) { - return do_sys_ftruncate(fd, length, 0); + long ret = do_sys_ftruncate(fd, length, 0); + prevent_tail_call(ret); + return ret; } #endif