You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2023/01/02 14:23:28 UTC

[nuttx] 02/03: Add ftruncate into file operation calls

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 41e9df2f3e7c6d4c5010400dbe8222aebbf1f3da
Author: Jukka Laitinen <ju...@ssrc.tii.ae>
AuthorDate: Thu Dec 22 14:51:59 2022 +0400

    Add ftruncate into file operation calls
    
    - Add truncate into file_operations
    - Move truncate to be common for mountpt_operations and file_operations
    - Modify all drivers to initialize the operations struct accordingly
    
    Signed-off-by: Jukka Laitinen <ju...@ssrc.tii.ae>
---
 arch/arm/src/cxd56xx/cxd56_geofence.c                   |  1 +
 arch/arm/src/cxd56xx/cxd56_gnss.c                       |  1 +
 arch/arm/src/cxd56xx/cxd56_hostif.c                     |  1 +
 arch/arm/src/sama5/sam_tsd.c                            |  1 +
 boards/arm/sam34/sam4l-xplained/src/sam_slcd.c          |  1 +
 boards/arm/stm32/mikroe-stm32f4/src/stm32_touchscreen.c |  1 +
 boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c        |  1 +
 boards/mips/pic32mx/pic32mx7mmb/src/pic32_touchscreen.c |  1 +
 boards/mips/pic32mx/sure-pic32mx/src/pic32mx_lcd1602.c  |  1 +
 crypto/cryptodev.c                                      |  2 ++
 drivers/analog/adc.c                                    |  1 +
 drivers/analog/comp.c                                   |  1 +
 drivers/bch/bchdev_driver.c                             |  1 +
 drivers/can/can.c                                       |  1 +
 drivers/crypto/dev_urandom.c                            |  1 +
 drivers/i2c/i2c_driver.c                                |  1 +
 drivers/input/ads7843e.c                                |  1 +
 drivers/input/ajoystick.c                               |  1 +
 drivers/input/button_upper.c                            |  1 +
 drivers/input/cypress_mbr3108.c                         |  1 +
 drivers/input/djoystick.c                               |  1 +
 drivers/input/ft5x06.c                                  |  1 +
 drivers/input/keyboard_upper.c                          |  1 +
 drivers/input/max11802.c                                |  1 +
 drivers/input/mxt.c                                     |  1 +
 drivers/input/spq10kbd.c                                |  1 +
 drivers/input/stmpe811_tsc.c                            |  1 +
 drivers/input/touchscreen_upper.c                       |  1 +
 drivers/input/tsc2007.c                                 |  1 +
 drivers/lcd/ft80x.c                                     |  1 +
 drivers/lcd/pcf8574_lcd_backpack.c                      |  1 +
 drivers/lcd/tda19988.c                                  |  1 +
 drivers/misc/dev_null.c                                 |  1 +
 drivers/misc/dev_zero.c                                 |  1 +
 drivers/misc/rpmsgdev.c                                 |  1 +
 drivers/modem/alt1250/alt1250.c                         |  1 +
 drivers/modem/u-blox.c                                  |  1 +
 drivers/mtd/mtd_config.c                                |  1 +
 drivers/mtd/mtd_config_fs.c                             |  1 +
 drivers/net/telnet.c                                    |  2 ++
 drivers/net/tun.c                                       |  1 +
 drivers/pipes/fifo.c                                    |  1 +
 drivers/pipes/pipe.c                                    |  1 +
 drivers/power/battery/battery_charger.c                 |  1 +
 drivers/power/battery/battery_gauge.c                   |  1 +
 drivers/power/battery/battery_monitor.c                 |  1 +
 drivers/rc/lirc_dev.c                                   |  1 +
 drivers/sensors/aht10.c                                 |  1 +
 drivers/sensors/hc_sr04.c                               |  1 +
 drivers/sensors/hdc1008.c                               |  1 +
 drivers/sensors/hts221.c                                |  1 +
 drivers/sensors/lis2dh.c                                |  1 +
 drivers/sensors/max44009.c                              |  1 +
 drivers/sensors/scd30.c                                 |  1 +
 drivers/sensors/scd41.c                                 |  1 +
 drivers/sensors/sensor.c                                |  1 +
 drivers/sensors/sgp30.c                                 |  1 +
 drivers/sensors/sht21.c                                 |  1 +
 drivers/sensors/sht3x.c                                 |  1 +
 drivers/sensors/sps30.c                                 |  1 +
 drivers/sensors/usensor.c                               |  1 +
 drivers/serial/pty.c                                    |  1 +
 drivers/serial/serial.c                                 |  1 +
 drivers/serial/uart_bth4.c                              |  1 +
 drivers/spi/spi_driver.c                                |  1 +
 drivers/spi/spi_slave_driver.c                          |  1 +
 drivers/syslog/ramlog.c                                 |  1 +
 drivers/timers/rtc.c                                    |  1 +
 drivers/usbdev/adb.c                                    |  1 +
 drivers/usbhost/usbhost_cdcmbim.c                       |  1 +
 drivers/usbhost/usbhost_hidkbd.c                        |  1 +
 drivers/usbhost/usbhost_hidmouse.c                      |  1 +
 drivers/usbhost/usbhost_xboxcontroller.c                |  1 +
 drivers/usbmisc/fusb301.c                               |  1 +
 drivers/usbmisc/fusb303.c                               |  1 +
 drivers/usrsock/usrsock_dev.c                           |  1 +
 drivers/video/fb.c                                      |  1 +
 drivers/video/video.c                                   |  1 +
 drivers/wireless/cc1101.c                               |  1 +
 drivers/wireless/gs2200m.c                              |  1 +
 drivers/wireless/lpwan/sx127x/sx127x.c                  |  1 +
 drivers/wireless/nrf24l01.c                             |  1 +
 fs/binfs/fs_binfs.c                                     |  2 +-
 fs/cromfs/fs_cromfs.c                                   |  2 +-
 fs/fat/fs_fat32.c                                       |  3 +--
 fs/hostfs/hostfs.c                                      |  2 +-
 fs/littlefs/lfs_vfs.c                                   |  2 +-
 fs/mqueue/mq_open.c                                     |  1 +
 fs/nfs/nfs_vfsops.c                                     |  2 +-
 fs/nxffs/nxffs_initialize.c                             | 10 +++++-----
 fs/procfs/fs_procfs.c                                   |  2 +-
 fs/romfs/fs_romfs.c                                     |  1 +
 fs/rpmsgfs/rpmsgfs.c                                    |  2 +-
 fs/smartfs/smartfs_smart.c                              |  2 +-
 fs/socket/socket.c                                      |  1 +
 fs/spiffs/src/spiffs_vfs.c                              |  2 +-
 fs/tmpfs/fs_tmpfs.c                                     |  2 +-
 fs/unionfs/fs_unionfs.c                                 |  2 +-
 fs/userfs/fs_userfs.c                                   |  2 +-
 fs/vfs/fs_epoll.c                                       |  1 +
 fs/vfs/fs_eventfd.c                                     |  1 +
 fs/vfs/fs_signalfd.c                                    |  1 +
 fs/vfs/fs_truncate.c                                    | 15 ++++++++++-----
 graphics/nxterm/nxterm_driver.c                         |  2 ++
 include/nuttx/fs/fs.h                                   |  3 ++-
 105 files changed, 122 insertions(+), 25 deletions(-)

diff --git a/arch/arm/src/cxd56xx/cxd56_geofence.c b/arch/arm/src/cxd56xx/cxd56_geofence.c
index f5b5bb7592..0dc32b65cd 100644
--- a/arch/arm/src/cxd56xx/cxd56_geofence.c
+++ b/arch/arm/src/cxd56xx/cxd56_geofence.c
@@ -106,6 +106,7 @@ static const struct file_operations g_geofencefops =
   NULL,                 /* write */
   NULL,                 /* seek */
   cxd56_geofence_ioctl, /* ioctl */
+  NULL,                 /* truncate */
   cxd56_geofence_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                /* unlink */
diff --git a/arch/arm/src/cxd56xx/cxd56_gnss.c b/arch/arm/src/cxd56xx/cxd56_gnss.c
index 826da673aa..04270f1477 100644
--- a/arch/arm/src/cxd56xx/cxd56_gnss.c
+++ b/arch/arm/src/cxd56xx/cxd56_gnss.c
@@ -317,6 +317,7 @@ static const struct file_operations g_gnssfops =
   cxd56_gnss_write, /* write */
   NULL,             /* seek */
   cxd56_gnss_ioctl, /* ioctl */
+  NULL,             /* truncate */
   cxd56_gnss_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/arch/arm/src/cxd56xx/cxd56_hostif.c b/arch/arm/src/cxd56xx/cxd56_hostif.c
index ec217d03bd..905c1baf68 100644
--- a/arch/arm/src/cxd56xx/cxd56_hostif.c
+++ b/arch/arm/src/cxd56xx/cxd56_hostif.c
@@ -145,6 +145,7 @@ static const struct file_operations g_hif_fops =
   hif_write,   /* write */
   hif_seek,    /* seek */
   hif_ioctl,   /* ioctl */
+  NULL,        /* truncate */
   hif_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , hif_unlink /* unlink */
diff --git a/arch/arm/src/sama5/sam_tsd.c b/arch/arm/src/sama5/sam_tsd.c
index 4c6e925f5b..3e2adab4db 100644
--- a/arch/arm/src/sama5/sam_tsd.c
+++ b/arch/arm/src/sama5/sam_tsd.c
@@ -249,6 +249,7 @@ static const struct file_operations g_tsdops =
   NULL,            /* write */
   NULL,            /* seek */
   sam_tsd_ioctl,   /* ioctl */
+  NULL,            /* truncate */
   sam_tsd_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL           /* unlink */
diff --git a/boards/arm/sam34/sam4l-xplained/src/sam_slcd.c b/boards/arm/sam34/sam4l-xplained/src/sam_slcd.c
index 3dd6553b9b..c612ab8c54 100644
--- a/boards/arm/sam34/sam4l-xplained/src/sam_slcd.c
+++ b/boards/arm/sam34/sam4l-xplained/src/sam_slcd.c
@@ -296,6 +296,7 @@ static const struct file_operations g_slcdops =
   slcd_write,    /* write */
   NULL,          /* seek */
   slcd_ioctl,    /* ioctl */
+  NULL,          /* truncate */
   slcd_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/boards/arm/stm32/mikroe-stm32f4/src/stm32_touchscreen.c b/boards/arm/stm32/mikroe-stm32f4/src/stm32_touchscreen.c
index 5e3725e7ed..0a9b57e28d 100644
--- a/boards/arm/stm32/mikroe-stm32f4/src/stm32_touchscreen.c
+++ b/boards/arm/stm32/mikroe-stm32f4/src/stm32_touchscreen.c
@@ -268,6 +268,7 @@ static const struct file_operations tc_fops =
   NULL,       /* write */
   NULL,       /* seek */
   tc_ioctl,   /* ioctl */
+  NULL,       /* truncate */
   tc_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL      /* unlink */
diff --git a/boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c b/boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c
index d4859819c2..5778631ff0 100644
--- a/boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c
+++ b/boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c
@@ -346,6 +346,7 @@ static const struct file_operations g_slcdops =
   slcd_write,    /* write */
   NULL,          /* seek */
   slcd_ioctl,    /* ioctl */
+  NULL,          /* truncate */
   slcd_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/boards/mips/pic32mx/pic32mx7mmb/src/pic32_touchscreen.c b/boards/mips/pic32mx/pic32mx7mmb/src/pic32_touchscreen.c
index 7684c58e57..9ae2554986 100644
--- a/boards/mips/pic32mx/pic32mx7mmb/src/pic32_touchscreen.c
+++ b/boards/mips/pic32mx/pic32mx7mmb/src/pic32_touchscreen.c
@@ -249,6 +249,7 @@ static const struct file_operations tc_fops =
   NULL,       /* write */
   NULL,       /* seek */
   tc_ioctl,   /* ioctl */
+  NULL,       /* truncate */
   tc_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL      /* unlink */
diff --git a/boards/mips/pic32mx/sure-pic32mx/src/pic32mx_lcd1602.c b/boards/mips/pic32mx/sure-pic32mx/src/pic32mx_lcd1602.c
index 1baf1a8cf0..50cb3f99e9 100644
--- a/boards/mips/pic32mx/sure-pic32mx/src/pic32mx_lcd1602.c
+++ b/boards/mips/pic32mx/sure-pic32mx/src/pic32mx_lcd1602.c
@@ -181,6 +181,7 @@ static const struct file_operations g_lcdops =
   lcd_write,     /* write */
   NULL,          /* seek */
   lcd_ioctl,     /* ioctl */
+  NULL,          /* truncate */
   lcd_poll       /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/crypto/cryptodev.c b/crypto/cryptodev.c
index b524804b2f..44eb9410e8 100644
--- a/crypto/cryptodev.c
+++ b/crypto/cryptodev.c
@@ -125,6 +125,7 @@ static const struct file_operations g_cryptofops =
   cryptof_write,       /* write  */
   NULL,                /* seek   */
   cryptof_ioctl,       /* ioctl  */
+  NULL,                /* truncate */
   cryptof_poll         /* poll   */
 };
 
@@ -136,6 +137,7 @@ static const struct file_operations g_cryptoops =
   NULL,                /* write  */
   NULL,                /* seek   */
   cryptoioctl,         /* ioctl  */
+  NULL,                /* truncate */
   NULL                 /* poll   */
 };
 
diff --git a/drivers/analog/adc.c b/drivers/analog/adc.c
index 0d9cc43bd5..099e7b4d17 100644
--- a/drivers/analog/adc.c
+++ b/drivers/analog/adc.c
@@ -72,6 +72,7 @@ static const struct file_operations g_adc_fops =
   NULL,         /* write */
   NULL,         /* seek */
   adc_ioctl,    /* ioctl */
+  NULL,         /* truncate */
   adc_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL        /* unlink */
diff --git a/drivers/analog/comp.c b/drivers/analog/comp.c
index 3bec754743..1fb32f18de 100644
--- a/drivers/analog/comp.c
+++ b/drivers/analog/comp.c
@@ -65,6 +65,7 @@ static const struct file_operations comp_fops =
   NULL,                         /* write */
   NULL,                         /* seek */
   comp_ioctl,                   /* ioctl */
+  NULL,                         /* truncate */
   comp_poll                     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                        /* unlink */
diff --git a/drivers/bch/bchdev_driver.c b/drivers/bch/bchdev_driver.c
index d807822cce..83fc4250d3 100644
--- a/drivers/bch/bchdev_driver.c
+++ b/drivers/bch/bchdev_driver.c
@@ -78,6 +78,7 @@ const struct file_operations bch_fops =
   bch_write,   /* write */
   bch_seek,    /* seek */
   bch_ioctl,   /* ioctl */
+  NULL,        /* truncate */
   bch_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , bch_unlink /* unlink */
diff --git a/drivers/can/can.c b/drivers/can/can.c
index 69ca540382..b19cb36f26 100644
--- a/drivers/can/can.c
+++ b/drivers/can/can.c
@@ -135,6 +135,7 @@ static const struct file_operations g_canops =
   can_write, /* write */
   NULL,      /* seek */
   can_ioctl, /* ioctl */
+  NULL,      /* truncate */
   can_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL     /* unlink */
diff --git a/drivers/crypto/dev_urandom.c b/drivers/crypto/dev_urandom.c
index 0137fdfaf3..8796f7445b 100644
--- a/drivers/crypto/dev_urandom.c
+++ b/drivers/crypto/dev_urandom.c
@@ -100,6 +100,7 @@ static const struct file_operations g_urand_fops =
   devurand_write,               /* write */
   NULL,                         /* seek */
   NULL,                         /* ioctl */
+  NULL,                         /* truncate */
   devurand_poll                 /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                        /* unlink */
diff --git a/drivers/i2c/i2c_driver.c b/drivers/i2c/i2c_driver.c
index 5a7c4c9f3b..b7836b7327 100644
--- a/drivers/i2c/i2c_driver.c
+++ b/drivers/i2c/i2c_driver.c
@@ -99,6 +99,7 @@ static const struct file_operations i2cdrvr_fops =
   i2cdrvr_write,   /* write */
   NULL,            /* seek */
   i2cdrvr_ioctl,   /* ioctl */
+  NULL,            /* truncate */
   NULL             /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , i2cdrvr_unlink /* unlink */
diff --git a/drivers/input/ads7843e.c b/drivers/input/ads7843e.c
index 8cf4e9ff16..19126b3b6b 100644
--- a/drivers/input/ads7843e.c
+++ b/drivers/input/ads7843e.c
@@ -122,6 +122,7 @@ static const struct file_operations ads7843e_fops =
   NULL,             /* write */
   NULL,             /* seek */
   ads7843e_ioctl,   /* ioctl */
+  NULL,             /* truncate */
   ads7843e_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/input/ajoystick.c b/drivers/input/ajoystick.c
index ef81fd8674..072d90615e 100644
--- a/drivers/input/ajoystick.c
+++ b/drivers/input/ajoystick.c
@@ -135,6 +135,7 @@ static const struct file_operations ajoy_fops =
   NULL,       /* write */
   NULL,       /* seek */
   ajoy_ioctl, /* ioctl */
+  NULL,       /* truncate */
   ajoy_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL      /* unlink */
diff --git a/drivers/input/button_upper.c b/drivers/input/button_upper.c
index 10117aa2d4..16b578bbf9 100644
--- a/drivers/input/button_upper.c
+++ b/drivers/input/button_upper.c
@@ -133,6 +133,7 @@ static const struct file_operations btn_fops =
   btn_write, /* write */
   NULL,      /* seek */
   btn_ioctl, /* ioctl */
+  NULL,      /* truncate */
   btn_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL     /* unlink */
diff --git a/drivers/input/cypress_mbr3108.c b/drivers/input/cypress_mbr3108.c
index 2fe4b6b584..39189b9329 100644
--- a/drivers/input/cypress_mbr3108.c
+++ b/drivers/input/cypress_mbr3108.c
@@ -224,6 +224,7 @@ static const struct file_operations g_mbr3108_fileops =
   mbr3108_write,  /* write */
   NULL,           /* seek */
   NULL,           /* ioctl */
+  NULL,           /* truncate */
   mbr3108_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/input/djoystick.c b/drivers/input/djoystick.c
index d2ba83a841..13365fd7a5 100644
--- a/drivers/input/djoystick.c
+++ b/drivers/input/djoystick.c
@@ -135,6 +135,7 @@ static const struct file_operations djoy_fops =
   NULL,       /* write */
   NULL,       /* seek */
   djoy_ioctl, /* ioctl */
+  NULL,       /* truncate */
   djoy_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL      /* unlink */
diff --git a/drivers/input/ft5x06.c b/drivers/input/ft5x06.c
index 478b362d04..8898f8e5d4 100644
--- a/drivers/input/ft5x06.c
+++ b/drivers/input/ft5x06.c
@@ -176,6 +176,7 @@ static const struct file_operations ft5x06_fops =
   NULL,           /* write */
   NULL,           /* seek */
   ft5x06_ioctl,   /* ioctl */
+  NULL,           /* truncate */
   ft5x06_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/input/keyboard_upper.c b/drivers/input/keyboard_upper.c
index 6ed9758ff1..c874a3a04f 100644
--- a/drivers/input/keyboard_upper.c
+++ b/drivers/input/keyboard_upper.c
@@ -88,6 +88,7 @@ static const struct file_operations g_keyboard_fops =
   keyboard_write, /* write */
   NULL,           /* seek */
   NULL,           /* ioctl */
+  NULL,           /* truncate */
   keyboard_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/input/max11802.c b/drivers/input/max11802.c
index 517cc3d58e..b0d69eb390 100644
--- a/drivers/input/max11802.c
+++ b/drivers/input/max11802.c
@@ -115,6 +115,7 @@ static const struct file_operations max11802_fops =
   NULL,             /* write */
   NULL,             /* seek */
   max11802_ioctl,   /* ioctl */
+  NULL,             /* truncate */
   max11802_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/input/mxt.c b/drivers/input/mxt.c
index 4daf8da771..5050bcda50 100644
--- a/drivers/input/mxt.c
+++ b/drivers/input/mxt.c
@@ -280,6 +280,7 @@ static const struct file_operations mxt_fops =
   NULL,        /* write */
   NULL,        /* seek */
   mxt_ioctl,   /* ioctl */
+  NULL,        /* truncate */
   mxt_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL       /* unlink */
diff --git a/drivers/input/spq10kbd.c b/drivers/input/spq10kbd.c
index 6a9cab82ba..91597439cd 100644
--- a/drivers/input/spq10kbd.c
+++ b/drivers/input/spq10kbd.c
@@ -255,6 +255,7 @@ static const struct file_operations g_hidkbd_fops =
   spq10kbd_write,            /* write */
   NULL,                      /* seek */
   NULL,                      /* ioctl */
+  NULL,                      /* truncate */
   spq10kbd_poll              /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                     /* unlink */
diff --git a/drivers/input/stmpe811_tsc.c b/drivers/input/stmpe811_tsc.c
index 89851b6070..6e82fed382 100644
--- a/drivers/input/stmpe811_tsc.c
+++ b/drivers/input/stmpe811_tsc.c
@@ -124,6 +124,7 @@ static const struct file_operations g_stmpe811fops =
   NULL,             /* write */
   NULL,             /* seek */
   stmpe811_ioctl,   /* ioctl */
+  NULL,             /* truncate */
   stmpe811_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/input/touchscreen_upper.c b/drivers/input/touchscreen_upper.c
index a1239452e3..48dc7038a6 100644
--- a/drivers/input/touchscreen_upper.c
+++ b/drivers/input/touchscreen_upper.c
@@ -90,6 +90,7 @@ static const struct file_operations g_touch_fops =
   touch_write,    /* write */
   NULL,           /* seek */
   touch_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   touch_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/input/tsc2007.c b/drivers/input/tsc2007.c
index 2b799b0c07..5a1afd55af 100644
--- a/drivers/input/tsc2007.c
+++ b/drivers/input/tsc2007.c
@@ -209,6 +209,7 @@ static const struct file_operations tsc2007_fops =
   NULL,            /* write */
   NULL,            /* seek */
   tsc2007_ioctl,   /* ioctl */
+  NULL,            /* truncate */
   tsc2007_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL           /* unlink */
diff --git a/drivers/lcd/ft80x.c b/drivers/lcd/ft80x.c
index 9880b52494..6950b39c7f 100644
--- a/drivers/lcd/ft80x.c
+++ b/drivers/lcd/ft80x.c
@@ -134,6 +134,7 @@ static const struct file_operations g_ft80x_fops =
   ft80x_write,   /* write */
   NULL,          /* seek */
   ft80x_ioctl,   /* ioctl */
+  NULL,          /* truncate */
   NULL           /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , ft80x_unlink /* unlink */
diff --git a/drivers/lcd/pcf8574_lcd_backpack.c b/drivers/lcd/pcf8574_lcd_backpack.c
index 07dd614baf..a27179386a 100644
--- a/drivers/lcd/pcf8574_lcd_backpack.c
+++ b/drivers/lcd/pcf8574_lcd_backpack.c
@@ -117,6 +117,7 @@ static const struct file_operations g_pcf8574_lcd_fops =
   pcf8574_lcd_write,            /* write */
   pcf8574_lcd_seek,             /* seek */
   pcf8574_lcd_ioctl,            /* ioctl */
+  NULL,                         /* truncate */
   pcf8574_lcd_poll              /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , pcf8574_lcd_unlink          /* unlink */
diff --git a/drivers/lcd/tda19988.c b/drivers/lcd/tda19988.c
index f07c662a09..f8e0b06eb6 100644
--- a/drivers/lcd/tda19988.c
+++ b/drivers/lcd/tda19988.c
@@ -170,6 +170,7 @@ static const struct file_operations tda19988_fops =
   tda19988_write,    /* write */
   tda19988_seek,     /* seek */
   tda19988_ioctl,    /* ioctl */
+  NULL,              /* truncate */
   tda19988_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , tda19988_unlink  /* unlink */
diff --git a/drivers/misc/dev_null.c b/drivers/misc/dev_null.c
index da6fc34863..5b84c8a436 100644
--- a/drivers/misc/dev_null.c
+++ b/drivers/misc/dev_null.c
@@ -57,6 +57,7 @@ static const struct file_operations devnull_fops =
   devnull_write, /* write */
   NULL,          /* seek */
   NULL,          /* ioctl */
+  NULL,          /* truncate */
   devnull_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/misc/dev_zero.c b/drivers/misc/dev_zero.c
index 097e79d1c5..b02ba21559 100644
--- a/drivers/misc/dev_zero.c
+++ b/drivers/misc/dev_zero.c
@@ -57,6 +57,7 @@ static const struct file_operations devzero_fops =
   devzero_write, /* write */
   NULL,          /* seek */
   NULL,          /* ioctl */
+  NULL,          /* truncate */
   devzero_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/misc/rpmsgdev.c b/drivers/misc/rpmsgdev.c
index 9df1ba0c86..96eb593411 100644
--- a/drivers/misc/rpmsgdev.c
+++ b/drivers/misc/rpmsgdev.c
@@ -165,6 +165,7 @@ const struct file_operations g_rpmsgdev_ops =
   rpmsgdev_write,         /* write */
   rpmsgdev_seek,          /* seek */
   rpmsgdev_ioctl,         /* ioctl */
+  NULL,                   /* truncate */
   rpmsgdev_poll           /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                  /* unlink */
diff --git a/drivers/modem/alt1250/alt1250.c b/drivers/modem/alt1250/alt1250.c
index 0c0654d6f7..6978432a53 100644
--- a/drivers/modem/alt1250/alt1250.c
+++ b/drivers/modem/alt1250/alt1250.c
@@ -77,6 +77,7 @@ static const struct file_operations g_alt1250fops =
   NULL,          /* write */
   NULL,          /* seek */
   alt1250_ioctl, /* ioctl */
+  NULL,          /* truncate */
   alt1250_poll,  /* poll */
 };
 static uint8_t g_recvbuff[ALTCOM_RX_PKT_SIZE_MAX];
diff --git a/drivers/modem/u-blox.c b/drivers/modem/u-blox.c
index b858a4a072..fbd3d38ad3 100644
--- a/drivers/modem/u-blox.c
+++ b/drivers/modem/u-blox.c
@@ -114,6 +114,7 @@ static const struct file_operations ubxmdm_fops =
   ubxmdm_write, /* write */
   NULL,         /* seek */
   ubxmdm_ioctl, /* ioctl */
+  NULL,         /* truncate */
   ubxmdm_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL        /* unlink */
diff --git a/drivers/mtd/mtd_config.c b/drivers/mtd/mtd_config.c
index f63521f705..4e74433a59 100644
--- a/drivers/mtd/mtd_config.c
+++ b/drivers/mtd/mtd_config.c
@@ -119,6 +119,7 @@ static const struct file_operations mtdconfig_fops =
   NULL,            /* write */
   NULL,            /* seek */
   mtdconfig_ioctl, /* ioctl */
+  NULL,            /* truncate */
   mtdconfig_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/mtd/mtd_config_fs.c b/drivers/mtd/mtd_config_fs.c
index ccfeb250a5..cb6153e248 100644
--- a/drivers/mtd/mtd_config_fs.c
+++ b/drivers/mtd/mtd_config_fs.c
@@ -141,6 +141,7 @@ static const struct file_operations g_mtdnvs_fops =
   NULL,            /* Write */
   NULL,            /* Seek */
   mtdconfig_ioctl, /* Ioctl */
+  NULL,            /* Truncate */
   mtdconfig_poll   /* Poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL           /* Unlink */
diff --git a/drivers/net/telnet.c b/drivers/net/telnet.c
index a8bf663730..2b922a08d6 100644
--- a/drivers/net/telnet.c
+++ b/drivers/net/telnet.c
@@ -190,6 +190,7 @@ static const struct file_operations g_telnet_fops =
   telnet_write,  /* write */
   NULL,          /* seek */
   telnet_ioctl,  /* ioctl */
+  NULL,          /* truncate */
   telnet_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
@@ -204,6 +205,7 @@ static const struct file_operations g_factory_fops =
   factory_write, /* write */
   NULL,          /* seek */
   factory_ioctl, /* ioctl */
+  NULL,          /* truncate */
   NULL           /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 751efeaf2d..cab2d1f325 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -219,6 +219,7 @@ static const struct file_operations g_tun_file_ops =
   tun_write,    /* write */
   NULL,         /* seek */
   tun_ioctl,    /* ioctl */
+  NULL,         /* truncate */
   tun_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL        /* unlink */
diff --git a/drivers/pipes/fifo.c b/drivers/pipes/fifo.c
index 61010d3a1e..7ad5c4358c 100644
--- a/drivers/pipes/fifo.c
+++ b/drivers/pipes/fifo.c
@@ -47,6 +47,7 @@ static const struct file_operations g_fifo_fops =
   pipecommon_write,    /* write */
   NULL,                /* seek */
   pipecommon_ioctl,    /* ioctl */
+  NULL,                /* truncate */
   pipecommon_poll      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , pipecommon_unlink  /* unlink */
diff --git a/drivers/pipes/pipe.c b/drivers/pipes/pipe.c
index 999a55a7f3..67050f9176 100644
--- a/drivers/pipes/pipe.c
+++ b/drivers/pipes/pipe.c
@@ -61,6 +61,7 @@ static const struct file_operations g_pipe_fops =
   pipecommon_write,    /* write */
   NULL,                /* seek */
   pipecommon_ioctl,    /* ioctl */
+  NULL,                /* truncate */
   pipecommon_poll      /* poll */
 };
 
diff --git a/drivers/power/battery/battery_charger.c b/drivers/power/battery/battery_charger.c
index c7d2e37398..edfc8c4c29 100644
--- a/drivers/power/battery/battery_charger.c
+++ b/drivers/power/battery/battery_charger.c
@@ -91,6 +91,7 @@ static const struct file_operations g_batteryops =
   bat_charger_write,   /* write */
   NULL,                /* seek */
   bat_charger_ioctl,   /* ioctl */
+  NULL,                /* truncate */
   bat_charger_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL               /* unlink */
diff --git a/drivers/power/battery/battery_gauge.c b/drivers/power/battery/battery_gauge.c
index ae09ed49fc..37b01cb9c4 100644
--- a/drivers/power/battery/battery_gauge.c
+++ b/drivers/power/battery/battery_gauge.c
@@ -93,6 +93,7 @@ static const struct file_operations g_batteryops =
   bat_gauge_write,  /* write */
   NULL,             /* seek */
   bat_gauge_ioctl,  /* ioctl */
+  NULL,             /* truncate */
   bat_gauge_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/power/battery/battery_monitor.c b/drivers/power/battery/battery_monitor.c
index 8d3499d436..77e1980868 100644
--- a/drivers/power/battery/battery_monitor.c
+++ b/drivers/power/battery/battery_monitor.c
@@ -92,6 +92,7 @@ static const struct file_operations g_batteryops =
   bat_monitor_write,   /* write */
   NULL,                /* seek */
   bat_monitor_ioctl,   /* ioctl */
+  NULL,                /* truncate */
   bat_monitor_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL               /* unlink */
diff --git a/drivers/rc/lirc_dev.c b/drivers/rc/lirc_dev.c
index 38cd34e1e6..d4911fae41 100644
--- a/drivers/rc/lirc_dev.c
+++ b/drivers/rc/lirc_dev.c
@@ -103,6 +103,7 @@ static const struct file_operations g_lirc_fops =
   lirc_write,  /* write */
   NULL,        /* seek */
   lirc_ioctl,  /* ioctl */
+  NULL,        /* truncate */
   lirc_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL       /* unlink */
diff --git a/drivers/sensors/aht10.c b/drivers/sensors/aht10.c
index 8b79b3deac..529ce0140e 100644
--- a/drivers/sensors/aht10.c
+++ b/drivers/sensors/aht10.c
@@ -116,6 +116,7 @@ static const struct file_operations g_aht10fops =
   aht10_write,    /* write */
   NULL,           /* seek */
   aht10_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , aht10_unlink /* unlink */
diff --git a/drivers/sensors/hc_sr04.c b/drivers/sensors/hc_sr04.c
index 5f637bf4b6..f4cfd37726 100644
--- a/drivers/sensors/hc_sr04.c
+++ b/drivers/sensors/hc_sr04.c
@@ -90,6 +90,7 @@ static const struct file_operations g_hcsr04ops =
   hcsr04_write,  /* write */
   NULL,          /* seek */
   hcsr04_ioctl,  /* ioctl */
+  NULL,          /* truncate */
   hcsr04_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/sensors/hdc1008.c b/drivers/sensors/hdc1008.c
index b6a78277dc..612011ebb2 100644
--- a/drivers/sensors/hdc1008.c
+++ b/drivers/sensors/hdc1008.c
@@ -161,6 +161,7 @@ static const struct file_operations g_hdc1008fops =
   hdc1008_write,    /* write */
   NULL,             /* seek */
   hdc1008_ioctl,    /* ioctl */
+  NULL,             /* truncate */
   NULL              /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , hdc1008_unlink  /* unlink */
diff --git a/drivers/sensors/hts221.c b/drivers/sensors/hts221.c
index 71f0c16634..9e02fbe00f 100644
--- a/drivers/sensors/hts221.c
+++ b/drivers/sensors/hts221.c
@@ -157,6 +157,7 @@ static const struct file_operations g_humidityops =
   hts221_write,  /* write */
   NULL,          /* seek */
   hts221_ioctl,  /* ioctl */
+  NULL,          /* truncate */
   hts221_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/sensors/lis2dh.c b/drivers/sensors/lis2dh.c
index 7869480aba..efdd81e535 100644
--- a/drivers/sensors/lis2dh.c
+++ b/drivers/sensors/lis2dh.c
@@ -154,6 +154,7 @@ static const struct file_operations g_lis2dhops =
   lis2dh_write,  /* write */
   NULL,          /* seek */
   lis2dh_ioctl,  /* ioctl */
+  NULL,          /* truncate */
   lis2dh_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/sensors/max44009.c b/drivers/sensors/max44009.c
index fcbe397b9d..45a6fb6bae 100644
--- a/drivers/sensors/max44009.c
+++ b/drivers/sensors/max44009.c
@@ -112,6 +112,7 @@ static const struct file_operations g_alsops =
   max44009_write,  /* write */
   NULL,            /* seek */
   max44009_ioctl,  /* ioctl */
+  NULL,            /* truncate */
   max44009_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL           /* unlink */
diff --git a/drivers/sensors/scd30.c b/drivers/sensors/scd30.c
index febb52e66e..063a346b35 100644
--- a/drivers/sensors/scd30.c
+++ b/drivers/sensors/scd30.c
@@ -182,6 +182,7 @@ static const struct file_operations g_scd30fops =
   scd30_write,    /* write */
   NULL,           /* seek */
   scd30_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , scd30_unlink /* unlink */
diff --git a/drivers/sensors/scd41.c b/drivers/sensors/scd41.c
index 015b8f319b..272f37f5af 100644
--- a/drivers/sensors/scd41.c
+++ b/drivers/sensors/scd41.c
@@ -190,6 +190,7 @@ static const struct file_operations g_scd41fops =
   scd41_write,    /* write */
   NULL,           /* seek */
   scd41_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , scd41_unlink /* unlink */
diff --git a/drivers/sensors/sensor.c b/drivers/sensors/sensor.c
index 0ca7184839..4a93b4f11a 100644
--- a/drivers/sensors/sensor.c
+++ b/drivers/sensors/sensor.c
@@ -167,6 +167,7 @@ static const struct file_operations g_sensor_fops =
   sensor_write,   /* write */
   NULL,           /* seek  */
   sensor_ioctl,   /* ioctl */
+  NULL,           /* truncate */
   sensor_poll     /* poll  */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/sensors/sgp30.c b/drivers/sensors/sgp30.c
index b013d8228f..493a0af4d7 100644
--- a/drivers/sensors/sgp30.c
+++ b/drivers/sensors/sgp30.c
@@ -159,6 +159,7 @@ static const struct file_operations g_sgp30fops =
   sgp30_write,    /* write */
   NULL,           /* seek */
   sgp30_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , sgp30_unlink /* unlink */
diff --git a/drivers/sensors/sht21.c b/drivers/sensors/sht21.c
index de59fc2a52..a23b58ebfc 100644
--- a/drivers/sensors/sht21.c
+++ b/drivers/sensors/sht21.c
@@ -131,6 +131,7 @@ static const struct file_operations g_sht21fops =
   sht21_write,    /* write */
   NULL,           /* seek */
   sht21_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , sht21_unlink /* unlink */
diff --git a/drivers/sensors/sht3x.c b/drivers/sensors/sht3x.c
index 15d781490f..11dd183480 100644
--- a/drivers/sensors/sht3x.c
+++ b/drivers/sensors/sht3x.c
@@ -170,6 +170,7 @@ static const struct file_operations g_sht3xfops =
   sht3x_write,    /* write */
   NULL,           /* seek */
   sht3x_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , sht3x_unlink  /* unlink */
diff --git a/drivers/sensors/sps30.c b/drivers/sensors/sps30.c
index ed7e47a3f1..ad176cbe11 100644
--- a/drivers/sensors/sps30.c
+++ b/drivers/sensors/sps30.c
@@ -175,6 +175,7 @@ static const struct file_operations g_sps30fops =
   sps30_write,    /* write */
   NULL,           /* seek */
   sps30_ioctl,    /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , sps30_unlink /* unlink */
diff --git a/drivers/sensors/usensor.c b/drivers/sensors/usensor.c
index 3974abd31f..08fd9f791f 100644
--- a/drivers/sensors/usensor.c
+++ b/drivers/sensors/usensor.c
@@ -81,6 +81,7 @@ static const struct file_operations g_usensor_fops =
   usensor_write, /* write */
   NULL,          /* seek  */
   usensor_ioctl, /* ioctl */
+  NULL,          /* truncate */
   NULL,          /* poll  */
 };
 
diff --git a/drivers/serial/pty.c b/drivers/serial/pty.c
index a9181ecdb7..39a182cdd7 100644
--- a/drivers/serial/pty.c
+++ b/drivers/serial/pty.c
@@ -127,6 +127,7 @@ static const struct file_operations g_pty_fops =
   pty_write,     /* write */
   NULL,          /* seek */
   pty_ioctl,     /* ioctl */
+  NULL,          /* truncate */
   pty_poll       /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , pty_unlink   /* unlink */
diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
index 37e9e0aca7..ed7299b8aa 100644
--- a/drivers/serial/serial.c
+++ b/drivers/serial/serial.c
@@ -126,6 +126,7 @@ static const struct file_operations g_serialops =
   uart_write, /* write */
   NULL,       /* seek */
   uart_ioctl, /* ioctl */
+  NULL,       /* truncate */
   uart_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL      /* unlink */
diff --git a/drivers/serial/uart_bth4.c b/drivers/serial/uart_bth4.c
index 8978bd5312..e01a27331f 100644
--- a/drivers/serial/uart_bth4.c
+++ b/drivers/serial/uart_bth4.c
@@ -90,6 +90,7 @@ static const struct file_operations g_uart_bth4_ops =
   uart_bth4_write,  /* write */
   NULL,             /* seek */
   uart_bth4_ioctl,  /* ioctl */
+  NULL,             /* truncate */
   uart_bth4_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/drivers/spi/spi_driver.c b/drivers/spi/spi_driver.c
index 767eaec314..ae3a09726d 100644
--- a/drivers/spi/spi_driver.c
+++ b/drivers/spi/spi_driver.c
@@ -99,6 +99,7 @@ static const struct file_operations spidrvr_fops =
   spidrvr_write,   /* write */
   NULL,            /* seek */
   spidrvr_ioctl,   /* ioctl */
+  NULL,            /* truncate */
   NULL             /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , spidrvr_unlink /* unlink */
diff --git a/drivers/spi/spi_slave_driver.c b/drivers/spi/spi_slave_driver.c
index 61f0e6c0e9..54b4f5ac20 100644
--- a/drivers/spi/spi_slave_driver.c
+++ b/drivers/spi/spi_slave_driver.c
@@ -127,6 +127,7 @@ static const struct file_operations g_spislavefops =
   spi_slave_write,              /* write */
   NULL,                         /* seek */
   NULL,                         /* ioctl */
+  NULL,                         /* truncate */
   NULL                          /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , spi_slave_unlink            /* unlink */
diff --git a/drivers/syslog/ramlog.c b/drivers/syslog/ramlog.c
index dfc3e7dad0..a47c734742 100644
--- a/drivers/syslog/ramlog.c
+++ b/drivers/syslog/ramlog.c
@@ -114,6 +114,7 @@ static const struct file_operations g_ramlogfops =
   ramlog_file_write, /* write */
   NULL,              /* seek */
   ramlog_file_ioctl, /* ioctl */
+  NULL,              /* truncate */
   ramlog_file_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL             /* unlink */
diff --git a/drivers/timers/rtc.c b/drivers/timers/rtc.c
index 04507b917b..c0055c12f0 100644
--- a/drivers/timers/rtc.c
+++ b/drivers/timers/rtc.c
@@ -129,6 +129,7 @@ static const struct file_operations rtc_fops =
   rtc_write,     /* write */
   NULL,          /* seek */
   rtc_ioctl,     /* ioctl */
+  NULL,          /* truncate */
   NULL           /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , rtc_unlink   /* unlink */
diff --git a/drivers/usbdev/adb.c b/drivers/usbdev/adb.c
index 888e4bd4d1..3fdf8f082b 100755
--- a/drivers/usbdev/adb.c
+++ b/drivers/usbdev/adb.c
@@ -254,6 +254,7 @@ static const struct file_operations g_adb_fops =
   adb_char_write, /* write */
   NULL,           /* seek */
   NULL,           /* ioctl */
+  NULL,           /* truncate */
   adb_char_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/usbhost/usbhost_cdcmbim.c b/drivers/usbhost/usbhost_cdcmbim.c
index a59ecce323..c4f7540edb 100644
--- a/drivers/usbhost/usbhost_cdcmbim.c
+++ b/drivers/usbhost/usbhost_cdcmbim.c
@@ -347,6 +347,7 @@ static const struct file_operations cdcwdm_fops =
   cdcwdm_write,  /* write */
   NULL,          /* seek */
   NULL,          /* ioctl */
+  NULL,          /* truncate */
   cdcwdm_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/usbhost/usbhost_hidkbd.c b/drivers/usbhost/usbhost_hidkbd.c
index 9d91aa9eaa..be1f8e3ce5 100644
--- a/drivers/usbhost/usbhost_hidkbd.c
+++ b/drivers/usbhost/usbhost_hidkbd.c
@@ -341,6 +341,7 @@ static const struct file_operations g_hidkbd_fops =
   usbhost_write,            /* write */
   NULL,                     /* seek */
   NULL,                     /* ioctl */
+  NULL,                     /* truncate */
   usbhost_poll              /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                    /* unlink */
diff --git a/drivers/usbhost/usbhost_hidmouse.c b/drivers/usbhost/usbhost_hidmouse.c
index 770f061401..c44574fc21 100644
--- a/drivers/usbhost/usbhost_hidmouse.c
+++ b/drivers/usbhost/usbhost_hidmouse.c
@@ -391,6 +391,7 @@ static const struct file_operations g_hidmouse_fops =
   usbhost_write,           /* write */
   NULL,                    /* seek */
   NULL,                    /* ioctl */
+  NULL,                    /* truncate */
   usbhost_poll             /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                   /* unlink */
diff --git a/drivers/usbhost/usbhost_xboxcontroller.c b/drivers/usbhost/usbhost_xboxcontroller.c
index cc8c0b3fef..0531f38f39 100644
--- a/drivers/usbhost/usbhost_xboxcontroller.c
+++ b/drivers/usbhost/usbhost_xboxcontroller.c
@@ -296,6 +296,7 @@ static const struct file_operations g_xboxcontroller_fops =
   usbhost_write,            /* write */
   NULL,                     /* seek */
   usbhost_ioctl,            /* ioctl */
+  NULL,                     /* truncate */
   usbhost_poll              /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                    /* unlink */
diff --git a/drivers/usbmisc/fusb301.c b/drivers/usbmisc/fusb301.c
index 48b86e76d9..565a9ae8d6 100644
--- a/drivers/usbmisc/fusb301.c
+++ b/drivers/usbmisc/fusb301.c
@@ -94,6 +94,7 @@ static const struct file_operations g_fusb301ops =
   fusb301_write, /* write */
   NULL,          /* seek */
   fusb301_ioctl, /* ioctl */
+  NULL,          /* truncate */
   fusb301_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/usbmisc/fusb303.c b/drivers/usbmisc/fusb303.c
index 9d94840c76..19bb9ae710 100644
--- a/drivers/usbmisc/fusb303.c
+++ b/drivers/usbmisc/fusb303.c
@@ -128,6 +128,7 @@ static const struct file_operations g_fusb303ops =
   fusb303_write, /* write */
   NULL,          /* seek */
   fusb303_ioctl, /* ioctl */
+  NULL,          /* truncate */
   fusb303_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/usrsock/usrsock_dev.c b/drivers/usrsock/usrsock_dev.c
index 34a8ad3cca..30d46b58cc 100644
--- a/drivers/usrsock/usrsock_dev.c
+++ b/drivers/usrsock/usrsock_dev.c
@@ -103,6 +103,7 @@ static const struct file_operations g_usrsockdevops =
   usrsockdev_write,   /* write */
   usrsockdev_seek,    /* seek */
   NULL,               /* ioctl */
+  NULL,               /* truncate */
   usrsockdev_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL              /* unlink */
diff --git a/drivers/video/fb.c b/drivers/video/fb.c
index bc7fd7b5bc..b401599432 100644
--- a/drivers/video/fb.c
+++ b/drivers/video/fb.c
@@ -85,6 +85,7 @@ static const struct file_operations fb_fops =
   fb_write,      /* write */
   fb_seek,       /* seek */
   fb_ioctl,      /* ioctl */
+  NULL,          /* truncate */
   fb_poll        /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/video/video.c b/drivers/video/video.c
index 110012e4e4..94f894aa10 100644
--- a/drivers/video/video.c
+++ b/drivers/video/video.c
@@ -284,6 +284,7 @@ static const struct file_operations g_video_fops =
   video_write,              /* write */
   NULL,                     /* seek */
   video_ioctl,              /* ioctl */
+  NULL,                     /* truncate */
   NULL                      /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                    /* unlink */
diff --git a/drivers/wireless/cc1101.c b/drivers/wireless/cc1101.c
index 4787c35d1a..9b0633c77c 100644
--- a/drivers/wireless/cc1101.c
+++ b/drivers/wireless/cc1101.c
@@ -305,6 +305,7 @@ static const struct file_operations g_cc1101ops =
   cc1101_file_write, /* write */
   NULL,              /* seek */
   NULL,              /* ioctl */
+  NULL,              /* truncate */
   cc1101_file_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL             /* unlink */
diff --git a/drivers/wireless/gs2200m.c b/drivers/wireless/gs2200m.c
index d16183bb0b..25c3400e73 100644
--- a/drivers/wireless/gs2200m.c
+++ b/drivers/wireless/gs2200m.c
@@ -231,6 +231,7 @@ static const struct file_operations g_gs2200m_fops =
   gs2200m_write, /* write */
   NULL,          /* seek */
   gs2200m_ioctl, /* ioctl */
+  NULL,          /* truncate */
   gs2200m_poll   /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL         /* unlink */
diff --git a/drivers/wireless/lpwan/sx127x/sx127x.c b/drivers/wireless/lpwan/sx127x/sx127x.c
index 3388e2ce9f..8f00f4e486 100644
--- a/drivers/wireless/lpwan/sx127x/sx127x.c
+++ b/drivers/wireless/lpwan/sx127x/sx127x.c
@@ -451,6 +451,7 @@ static const struct file_operations sx127x_fops =
   sx127x_write,   /* write */
   NULL,           /* seek */
   sx127x_ioctl,   /* ioctl */
+  NULL,           /* truncate */
   sx127x_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL          /* unlink */
diff --git a/drivers/wireless/nrf24l01.c b/drivers/wireless/nrf24l01.c
index 9779532d1c..383ca7e658 100644
--- a/drivers/wireless/nrf24l01.c
+++ b/drivers/wireless/nrf24l01.c
@@ -239,6 +239,7 @@ static const struct file_operations nrf24l01_fops =
   nrf24l01_write,   /* write */
   NULL,             /* seek */
   nrf24l01_ioctl,   /* ioctl */
+  NULL,             /* truncate */
   nrf24l01_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/fs/binfs/fs_binfs.c b/fs/binfs/fs_binfs.c
index c10d9ff3dd..abb8647c86 100644
--- a/fs/binfs/fs_binfs.c
+++ b/fs/binfs/fs_binfs.c
@@ -109,12 +109,12 @@ const struct mountpt_operations binfs_operations =
   NULL,              /* write */
   NULL,              /* seek */
   binfs_ioctl,       /* ioctl */
+  NULL,              /* truncate */
 
   NULL,              /* sync */
   binfs_dup,         /* dup */
   binfs_fstat,       /* fstat */
   NULL,              /* fchstat */
-  NULL,              /* truncate */
 
   binfs_opendir,     /* opendir */
   binfs_closedir,    /* closedir */
diff --git a/fs/cromfs/fs_cromfs.c b/fs/cromfs/fs_cromfs.c
index 3f08a6d482..84f8184d69 100644
--- a/fs/cromfs/fs_cromfs.c
+++ b/fs/cromfs/fs_cromfs.c
@@ -184,12 +184,12 @@ const struct mountpt_operations cromfs_operations =
   NULL,              /* write */
   NULL,              /* seek */
   cromfs_ioctl,      /* ioctl */
+  NULL,              /* truncate */
 
   NULL,              /* sync */
   cromfs_dup,        /* dup */
   cromfs_fstat,      /* fstat */
   NULL,              /* fchstat */
-  NULL,              /* truncate */
 
   cromfs_opendir,    /* opendir */
   cromfs_closedir,   /* closedir */
diff --git a/fs/fat/fs_fat32.c b/fs/fat/fs_fat32.c
index c0163af64a..aef7d5856b 100644
--- a/fs/fat/fs_fat32.c
+++ b/fs/fat/fs_fat32.c
@@ -115,12 +115,11 @@ const struct mountpt_operations fat_operations =
   fat_write,         /* write */
   fat_seek,          /* seek */
   fat_ioctl,         /* ioctl */
-
+  fat_truncate,      /* truncate */
   fat_sync,          /* sync */
   fat_dup,           /* dup */
   fat_fstat,         /* fstat */
   NULL,              /* fchstat */
-  fat_truncate,      /* truncate */
 
   fat_opendir,       /* opendir */
   fat_closedir,      /* closedir */
diff --git a/fs/hostfs/hostfs.c b/fs/hostfs/hostfs.c
index b6e50ddb4e..de380b2f35 100644
--- a/fs/hostfs/hostfs.c
+++ b/fs/hostfs/hostfs.c
@@ -142,12 +142,12 @@ const struct mountpt_operations hostfs_operations =
   hostfs_write,         /* write */
   hostfs_seek,          /* seek */
   hostfs_ioctl,         /* ioctl */
+  hostfs_ftruncate,     /* ftruncate */
 
   hostfs_sync,          /* sync */
   hostfs_dup,           /* dup */
   hostfs_fstat,         /* fstat */
   hostfs_fchstat,       /* fchstat */
-  hostfs_ftruncate,     /* ftruncate */
 
   hostfs_opendir,       /* opendir */
   hostfs_closedir,      /* closedir */
diff --git a/fs/littlefs/lfs_vfs.c b/fs/littlefs/lfs_vfs.c
index 49bf16cf62..9022c0c76c 100644
--- a/fs/littlefs/lfs_vfs.c
+++ b/fs/littlefs/lfs_vfs.c
@@ -140,12 +140,12 @@ const struct mountpt_operations littlefs_operations =
   littlefs_write,         /* write */
   littlefs_seek,          /* seek */
   littlefs_ioctl,         /* ioctl */
+  littlefs_truncate,      /* truncate */
 
   littlefs_sync,          /* sync */
   littlefs_dup,           /* dup */
   littlefs_fstat,         /* fstat */
   NULL,                   /* fchstat */
-  littlefs_truncate,      /* truncate */
 
   littlefs_opendir,       /* opendir */
   littlefs_closedir,      /* closedir */
diff --git a/fs/mqueue/mq_open.c b/fs/mqueue/mq_open.c
index 6158e23e1c..74c78e82f3 100644
--- a/fs/mqueue/mq_open.c
+++ b/fs/mqueue/mq_open.c
@@ -60,6 +60,7 @@ static const struct file_operations g_nxmq_fileops =
   NULL,             /* write */
   NULL,             /* seek */
   NULL,             /* ioctl */
+  NULL,             /* truncate */
   nxmq_file_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/fs/nfs/nfs_vfsops.c b/fs/nfs/nfs_vfsops.c
index 73f2b5fa86..e75aac5d41 100644
--- a/fs/nfs/nfs_vfsops.c
+++ b/fs/nfs/nfs_vfsops.c
@@ -198,12 +198,12 @@ const struct mountpt_operations nfs_operations =
   nfs_write,                    /* write */
   NULL,                         /* seek */
   NULL,                         /* ioctl */
+  nfs_truncate,                 /* truncate */
 
   NULL,                         /* sync */
   nfs_dup,                      /* dup */
   nfs_fstat,                    /* fstat */
   nfs_fchstat,                  /* fchstat */
-  nfs_truncate,                 /* truncate */
 
   nfs_opendir,                  /* opendir */
   nfs_closedir,                 /* closedir */
diff --git a/fs/nxffs/nxffs_initialize.c b/fs/nxffs/nxffs_initialize.c
index c594bd8385..01964038f8 100644
--- a/fs/nxffs/nxffs_initialize.c
+++ b/fs/nxffs/nxffs_initialize.c
@@ -54,17 +54,17 @@ const struct mountpt_operations nxffs_operations =
   nxffs_write,       /* write */
   NULL,              /* seek -- Use f_pos in struct file */
   nxffs_ioctl,       /* ioctl */
-
-  NULL,              /* sync -- No buffered data */
-  nxffs_dup,         /* dup */
-  nxffs_fstat,       /* fstat */
-  NULL,              /* fchstat */
 #ifdef __NO_TRUNCATE_SUPPORT__
   nxffs_truncate,    /* truncate */
 #else
   NULL,              /* truncate */
 #endif
 
+  NULL,              /* sync -- No buffered data */
+  nxffs_dup,         /* dup */
+  nxffs_fstat,       /* fstat */
+  NULL,              /* fchstat */
+
   nxffs_opendir,     /* opendir */
   nxffs_closedir,    /* closedir */
   nxffs_readdir,     /* readdir */
diff --git a/fs/procfs/fs_procfs.c b/fs/procfs/fs_procfs.c
index 76be822222..ee5276d00c 100644
--- a/fs/procfs/fs_procfs.c
+++ b/fs/procfs/fs_procfs.c
@@ -252,12 +252,12 @@ const struct mountpt_operations procfs_operations =
   procfs_write,      /* write */
   NULL,              /* seek */
   procfs_ioctl,      /* ioctl */
+  NULL,              /* truncate */
 
   NULL,              /* sync */
   procfs_dup,        /* dup */
   procfs_fstat,      /* fstat */
   NULL,              /* fchstat */
-  NULL,              /* truncate */
 
   procfs_opendir,    /* opendir */
   procfs_closedir,   /* closedir */
diff --git a/fs/romfs/fs_romfs.c b/fs/romfs/fs_romfs.c
index ad439a91e1..91fceacf8d 100644
--- a/fs/romfs/fs_romfs.c
+++ b/fs/romfs/fs_romfs.c
@@ -119,6 +119,7 @@ const struct mountpt_operations romfs_operations =
   NULL,            /* write */
   romfs_seek,      /* seek */
   romfs_ioctl,     /* ioctl */
+  NULL,            /* truncate */
 
   NULL,            /* sync */
   romfs_dup,       /* dup */
diff --git a/fs/rpmsgfs/rpmsgfs.c b/fs/rpmsgfs/rpmsgfs.c
index 50a71a9af1..c35984098f 100644
--- a/fs/rpmsgfs/rpmsgfs.c
+++ b/fs/rpmsgfs/rpmsgfs.c
@@ -161,12 +161,12 @@ const struct mountpt_operations rpmsgfs_operations =
   rpmsgfs_write,         /* write */
   rpmsgfs_seek,          /* seek */
   rpmsgfs_ioctl,         /* ioctl */
+  rpmsgfs_ftruncate,     /* ftruncate */
 
   rpmsgfs_sync,          /* sync */
   rpmsgfs_dup,           /* dup */
   rpmsgfs_fstat,         /* fstat */
   rpmsgfs_fchstat,       /* fchstat */
-  rpmsgfs_ftruncate,     /* ftruncate */
 
   rpmsgfs_opendir,       /* opendir */
   rpmsgfs_closedir,      /* closedir */
diff --git a/fs/smartfs/smartfs_smart.c b/fs/smartfs/smartfs_smart.c
index a9b22c761f..f5735cea05 100644
--- a/fs/smartfs/smartfs_smart.c
+++ b/fs/smartfs/smartfs_smart.c
@@ -140,12 +140,12 @@ const struct mountpt_operations smartfs_operations =
   smartfs_write,         /* write */
   smartfs_seek,          /* seek */
   smartfs_ioctl,         /* ioctl */
+  smartfs_truncate,      /* truncate */
 
   smartfs_sync,          /* sync */
   smartfs_dup,           /* dup */
   smartfs_fstat,         /* fstat */
   NULL,                  /* fchstat */
-  smartfs_truncate,      /* truncate */
 
   smartfs_opendir,       /* opendir */
   smartfs_closedir,      /* closedir */
diff --git a/fs/socket/socket.c b/fs/socket/socket.c
index 37e66fc7ce..f18bc48963 100644
--- a/fs/socket/socket.c
+++ b/fs/socket/socket.c
@@ -64,6 +64,7 @@ static const struct file_operations g_sock_fileops =
   sock_file_write,  /* write */
   NULL,             /* seek */
   sock_file_ioctl,  /* ioctl */
+  NULL,             /* truncate */
   sock_file_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/fs/spiffs/src/spiffs_vfs.c b/fs/spiffs/src/spiffs_vfs.c
index 369d557a4c..011f1e53db 100644
--- a/fs/spiffs/src/spiffs_vfs.c
+++ b/fs/spiffs/src/spiffs_vfs.c
@@ -141,12 +141,12 @@ const struct mountpt_operations spiffs_operations =
   spiffs_write,      /* write */
   spiffs_seek,       /* seek */
   spiffs_ioctl,      /* ioctl */
+  spiffs_truncate,   /* truncate */
 
   spiffs_sync,       /* sync */
   spiffs_dup,        /* dup */
   spiffs_fstat,      /* fstat */
   NULL,              /* fchstat */
-  spiffs_truncate,   /* truncate */
 
   spiffs_opendir,    /* opendir */
   spiffs_closedir,   /* closedir */
diff --git a/fs/tmpfs/fs_tmpfs.c b/fs/tmpfs/fs_tmpfs.c
index dc17b5121c..4c92eb04a8 100644
--- a/fs/tmpfs/fs_tmpfs.c
+++ b/fs/tmpfs/fs_tmpfs.c
@@ -177,12 +177,12 @@ const struct mountpt_operations tmpfs_operations =
   tmpfs_write,      /* write */
   tmpfs_seek,       /* seek */
   tmpfs_ioctl,      /* ioctl */
+  tmpfs_truncate,   /* truncate */
 
   tmpfs_sync,       /* sync */
   tmpfs_dup,        /* dup */
   tmpfs_fstat,      /* fstat */
   NULL,             /* fchstat */
-  tmpfs_truncate,   /* truncate */
 
   tmpfs_opendir,    /* opendir */
   tmpfs_closedir,   /* closedir */
diff --git a/fs/unionfs/fs_unionfs.c b/fs/unionfs/fs_unionfs.c
index 3b0b23d4d9..50b2f5ad26 100644
--- a/fs/unionfs/fs_unionfs.c
+++ b/fs/unionfs/fs_unionfs.c
@@ -222,12 +222,12 @@ const struct mountpt_operations unionfs_operations =
   unionfs_write,       /* write */
   unionfs_seek,        /* seek */
   unionfs_ioctl,       /* ioctl */
+  unionfs_truncate,    /* truncate */
 
   unionfs_sync,        /* sync */
   unionfs_dup,         /* dup */
   unionfs_fstat,       /* fstat */
   unionfs_fchstat,     /* fchstat */
-  unionfs_truncate,    /* truncate */
 
   unionfs_opendir,     /* opendir */
   unionfs_closedir,    /* closedir */
diff --git a/fs/userfs/fs_userfs.c b/fs/userfs/fs_userfs.c
index 8dff18f5d4..303a8571af 100644
--- a/fs/userfs/fs_userfs.c
+++ b/fs/userfs/fs_userfs.c
@@ -160,12 +160,12 @@ const struct mountpt_operations userfs_operations =
   userfs_write,      /* write */
   userfs_seek,       /* seek */
   userfs_ioctl,      /* ioctl */
+  userfs_truncate,   /* truncate */
 
   userfs_sync,       /* sync */
   userfs_dup,        /* dup */
   userfs_fstat,      /* fstat */
   userfs_fchstat,    /* fchstat */
-  userfs_truncate,   /* truncate */
 
   userfs_opendir,    /* opendir */
   userfs_closedir,   /* closedir */
diff --git a/fs/vfs/fs_epoll.c b/fs/vfs/fs_epoll.c
index 3214207b73..c642333b20 100644
--- a/fs/vfs/fs_epoll.c
+++ b/fs/vfs/fs_epoll.c
@@ -104,6 +104,7 @@ static const struct file_operations g_epoll_ops =
   NULL,             /* write */
   NULL,             /* seek */
   NULL,             /* ioctl */
+  NULL,             /* truncate */
   epoll_do_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL            /* unlink */
diff --git a/fs/vfs/fs_eventfd.c b/fs/vfs/fs_eventfd.c
index 30321d20bc..78610a5de7 100644
--- a/fs/vfs/fs_eventfd.c
+++ b/fs/vfs/fs_eventfd.c
@@ -100,6 +100,7 @@ static const struct file_operations g_eventfd_fops =
   eventfd_do_write, /* write */
   NULL,             /* seek */
   NULL,             /* ioctl */
+  NULL,             /* truncate */
 #ifdef CONFIG_EVENT_FD_POLL
   eventfd_do_poll   /* poll */
 #else
diff --git a/fs/vfs/fs_signalfd.c b/fs/vfs/fs_signalfd.c
index f8f5741b7a..6ffa8b1671 100644
--- a/fs/vfs/fs_signalfd.c
+++ b/fs/vfs/fs_signalfd.c
@@ -79,6 +79,7 @@ static const struct file_operations g_signalfd_fileops =
   NULL,                 /* write */
   NULL,                 /* seek */
   NULL,                 /* ioctl */
+  NULL,                 /* truncate */
   signalfd_file_poll    /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , NULL                /* unlink */
diff --git a/fs/vfs/fs_truncate.c b/fs/vfs/fs_truncate.c
index 4ecd06c13d..c4c0297640 100644
--- a/fs/vfs/fs_truncate.c
+++ b/fs/vfs/fs_truncate.c
@@ -68,9 +68,14 @@ int file_truncate(FAR struct file *filep, off_t length)
    */
 
   inode = filep->f_inode;
-  if (inode == NULL || !INODE_IS_MOUNTPT(inode) || inode->u.i_mops == NULL)
+  if (inode == NULL)
     {
-      fwarn("WARNING:  Not a (regular) file on a mounted file system.\n");
+      return -EINVAL;
+    }
+
+  if (inode->u.i_ops == NULL)
+    {
+      fwarn("WARNING:  Not a file\n");
       return -EINVAL;
     }
 
@@ -78,7 +83,7 @@ int file_truncate(FAR struct file *filep, off_t length)
    * possible not the only indicator -- sufficient, but not necessary")
    */
 
-  if (inode->u.i_mops->write == NULL)
+  if (inode->u.i_ops->write == NULL)
     {
       fwarn("WARNING: File system is read-only\n");
       return -EROFS;
@@ -88,7 +93,7 @@ int file_truncate(FAR struct file *filep, off_t length)
    * a write-able file system.
    */
 
-  if (inode->u.i_mops->truncate == NULL)
+  if (inode->u.i_ops->truncate == NULL)
     {
       fwarn("WARNING: File system does not support the truncate() method\n");
       return -ENOSYS;
@@ -96,7 +101,7 @@ int file_truncate(FAR struct file *filep, off_t length)
 
   /* Yes, then tell the file system to truncate this file */
 
-  return inode->u.i_mops->truncate(filep, length);
+  return inode->u.i_ops->truncate(filep, length);
 }
 
 /****************************************************************************
diff --git a/graphics/nxterm/nxterm_driver.c b/graphics/nxterm/nxterm_driver.c
index ddc4545039..594dc97519 100644
--- a/graphics/nxterm/nxterm_driver.c
+++ b/graphics/nxterm/nxterm_driver.c
@@ -66,6 +66,7 @@ const struct file_operations g_nxterm_drvrops =
   nxterm_write,   /* write */
   NULL,           /* seek */
   nxterm_ioctl,   /* ioctl */
+  NULL,           /* truncate */
   nxterm_poll     /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , nxterm_unlink /* unlink */
@@ -82,6 +83,7 @@ const struct file_operations g_nxterm_drvrops =
   nxterm_write,   /* write */
   NULL,           /* seek */
   nxterm_ioctl,   /* ioctl */
+  NULL,           /* truncate */
   NULL            /* poll */
 #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
   , nxterm_unlink /* unlink */
diff --git a/include/nuttx/fs/fs.h b/include/nuttx/fs/fs.h
index 951ad825ac..cf011428f6 100644
--- a/include/nuttx/fs/fs.h
+++ b/include/nuttx/fs/fs.h
@@ -212,6 +212,7 @@ struct file_operations
                    size_t buflen);
   off_t   (*seek)(FAR struct file *filep, off_t offset, int whence);
   int     (*ioctl)(FAR struct file *filep, int cmd, unsigned long arg);
+  int     (*truncate)(FAR struct file *filep, off_t length);
 
   /* The two structures need not be common after this point */
 
@@ -298,6 +299,7 @@ struct mountpt_operations
             size_t buflen);
   off_t   (*seek)(FAR struct file *filep, off_t offset, int whence);
   int     (*ioctl)(FAR struct file *filep, int cmd, unsigned long arg);
+  int     (*truncate)(FAR struct file *filep, off_t length);
 
   /* The two structures need not be common after this point. The following
    * are extended methods needed to deal with the unique needs of mounted
@@ -311,7 +313,6 @@ struct mountpt_operations
   int     (*fstat)(FAR const struct file *filep, FAR struct stat *buf);
   int     (*fchstat)(FAR const struct file *filep,
                      FAR const struct stat *buf, int flags);
-  int     (*truncate)(FAR struct file *filep, off_t length);
 
   /* Directory operations */